Учебно-методический комплекс. Методические указания к выполнению лабораторных работ. Направление подготовки бакалавра, страница 24

Следует отметить отличие языка ассемблер для МК 1816 от МП К580ВМ80. Здесь вводятся специальные символы: # - префикс непосредственного операнда; @ - префикс косвенной адресации. В командах арифметических операций вычитание заменяется сложением с числом в дополнительном коде. Умножение и деление производятся по подпрограммам.

Для запуска программы пользователя необходимо ввести адрес запуска с помощью АПК или ПрСч и нажать клавишу «П». На индикаторе будет 0 – 1.

В автоматическом режиме надо после «П» нажать клавишу «0». После выполнения программы на дисплее – «progr».

Выход из программы производится нажатием на клавишу «Ст» (Стоп). При этом сохраняются внутренняя память данных и содержимое регистров, останавливается таймер, а на дисплей выводится адрес останова.

3. Порядок выполнения лабораторной работы

1. Исследовать программу, представленную в табл. 1: ввести число с порта Р1  (нижний переключатель – в положении «Аккумулятор»), инвертировать его и записать в ячейку памяти данных по адресу 35.

Основные команды: набрать число, набрать программу

MOV R0, #d                              - B8{(R035)}

IN А, Р1                                     - 09{(А) (Р1)}

CPL А                                        - 37{(А) (А)}

MOV @R0, A                             - A0{((R0)) (A)}

Проверить, что инвертированное значение введенного с буферного регистра порта Р1 числа находится в ячейке 35 памяти данных.

                                                                                        Таблица 1               

АПК

Команда

Код

Комментарий

001

002

MOV R0, # 35

В8

35

; В регистр R0 записан непосредственный операнд 35Н (номер ячейки памяти). Команда двухбайтная

003

IN A, P1

09

; В аккумулятор вводятся данные с порта Р1

004

CPL A

37

; Инверсия аккумулятора. Результат - в аккумуляторе

005

MOV @R0, A

А0

; Запоминание в яч. памяти 35 результата операции

Перед выполнением программы необходимо записать в буферный регистр порта Р1 (8 нижних зеленых светодиодов) с помощью микротумблеров какое-нибудь число для исследования, например A016 = 1010 00002. Число для исследования заносится в двоичном коде, а результат будет получен на дисплее данных в 16-ричном. При записи считать, что светящийся диод соответствует  1.

Теперь можно приступить к выполнению программы: нажать последовательно клавиши Ст, АПК, затем набрать первый адрес программы 001, далее нажать клавиши ПУСК   («П»)  и «0».

При правильно набранной программе на дисплее будет сообщение «progr», то есть программа выполнена.

Теперь необходимо исследовать результат, который получен при выполнении программы в ячейке 35. Последовательно набираем Ст, АПД, «О», № адресуемой ячейки (35) - число на дисплее данных 5F, то есть инвертирование выполнено правильно.

2. Исследовать процедуру выполнения простейших арифметических операций. В ячейках памяти 35, 36, 37 находятся соответственно числа: А = 05, В = = 07, С = 03. Набрать программу, реализующую арифметические действия X = А + В — С. Результат поместить в ячейку 38 АПД. Программу выполнить в соответствии с рекомендациями, приведенными в табл. 2, нажав предварительно на общий сброс «R», чтобы стереть предыдущую запись.

При выполнении программы обратить внимание, что операция вычитания заменена сложением в дополнительном коде операнда 03.

Таблица 2