АПК |
Команда |
Код |
Комментарии |
001 002 |
MOV R0, #35 |
B8 35 |
; Адрес ячейки памяти 35 записан в регистр косвенного адреса R0 |
003 004 |
MOV @R0, #05 |
В0 05 |
; Первое слагаемое 05 записано в ячейку памяти по адресу 35 |
005 |
INС R0 |
18 |
; Адрес следующей ячейки памяти 36 |
006 007 |
MOV @R0, #07 |
B0 07 |
; Второе слагаемое 07 записано в ячейку памяти по адресу 36 |
008 |
INС R0 |
18 |
; Адрес ячейки памяти третьего операнда - 37 |
009 00А |
MOV @R0, #03 |
B0 03 |
; Третий операнд (вычитаемое) 03 записан в ячейку памяти 37 |
00В |
DEC R0 |
C8 |
; Возврат на адрес ячейки памяти 36 |
00С |
DEC R0 |
C8 |
; Возврат на адрес ячейки памяти 35 |
00D |
MOV A, @R0 |
F0 |
; Первое слагаемое пересылается в аккумулятор |
00Е |
INС R0 |
18 |
; Регистр косвенного адреса ука Регистр косвенного адреса указывает на яч. 36 |
00F |
ADD A, @R0 |
60 |
; Сложение содерж. аккумулятора и ячейки 36 |
010 |
MOV R3, A |
AB |
; Сохранение результата в регистре R3 |
011 |
INC R0 |
18 |
; Регистр косвенного адреса указывает на яч. 37 |
012 |
MOV А, @R0 |
F0 |
; Операнд 03 (вычитаемое) пересылается в аккум. |
013 |
CPL A |
37 |
; Инверсия аккумулятора (обратный код) |
014 |
INС A |
17 |
; (А)←(А ) +1: дополнительный код |
Окончание табл. 2 |
|||
015 |
ADD A, R3 |
6B |
; (А)←(А) + (R3) |
016 |
INС R0 |
18 |
; Регистр косвенного адреса указывает на яч. 38 |
017 |
MOV @R0, A |
A0 |
; ((R0))←(А). Результат в ячейке 38 |
После набора программы необходимо осуществить ее пуск и проверить результат, как это делалось в предыдущем пункте.
3. Выполнить программу умножения однобайтных чисел без знака, как рекомендовано в табл. 3. В этой программе в регистре R1 размещен множитель, а в регистре R2 - множимое. В общем случае результат умножения будет двухбайтным. Старший байт будет размещен в аккумуляторе, а младший байт – в регистре Ri (на месте множителя). Регистр R3 - счетчик программных циклов. В него загружается число 8 (число битов множителя). Умножение выполняется младшими разрядами вперед со сдвигом вправо частичного произведения.
При этом методе умножения содержимое аккумулятора и регистра-расширителя R1 сдвигается вправо на один бит так, что младший бит множителя, выдвигаемый из регистра R1, помещается в триггер признака переноса С. Если бит переноса С = 1, то множимое добавляется к содержимому аккумулятора, если С = 0, то никаких операций не производится.
Затем производится декремент счетчика циклов R3, и если его содержимое равно нулю, то все действия повторяются. Окончательный результат формируется при сдвиге частичного результата на один разряд вправо.
Для определенности программа выполняется при R1 = 32Н, a R2= 0AF. Пуск программы производится, как рекомендовано при выполнении программы табл. 2. Результат можно прочитать, нажав на клавиши «Ci» и «Рг» Содержимое аккумулятора должно быть равно А=01, а R1=4F.
Таблица 3
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.