Книга: Цифровые вычислительные устройства и микропроцессоры приборных комплексов
LOOP: MOV A,@R1 ; пересылка байта из регистра в ВПД
MOVX @R0,A ; через аккумулятор
INC R0 ; продвижение указателей
INC R1
DJNZ R2,LOOP ; продолжить, если переданы не все регистры
Пример 1.3 . Вычислить произведение двух 4-битных чисел, расположенных в младших тетрадах регистров R0 и R1. Для вычисления используется таблица произведений для всех комбинаций сомножителей (всего 256). Произведение двух тетрад имеет формат 1 байт. Таким образом, необходимая таблица произведений занимает одну страницу памяти. Данную таблицу удобно разместить на третьей странице РПП:
; вычисление Z = X*Y
; R0 = 0000XXXX
; R1 = 0000YYYY
; X и Y принимают значения 0 и 1
ORG 0 ; директива ассемблера, задающая
; начальный адрес программы
MOV A,R0 ; пересылка множимого в аккумулятор
SWAP A ; обмен тетрад аккумулятора
ORL A,R1 ; формирование в аккумуляторе
; адреса произведения
MOVP3 A,@A ; загрузка в аккумулятор произведения
ORG 0300 ; директива ассемблера, задающая начальный
; адрес таблицы на третьей странице РПП директивы ассемблера, формирующие таблицу произведений
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Z=0*Y
DB 1*0,1*1,1*2,…,1*0F ; Z=0*Y
…
…
…
DB 0F*0, 0F*1, 0F*2,…, 0F*0F ; Z=0*Y
Сложение положительных двоичных чисел . Выполнение этой операции покажем на примере:
Переносы 1 1 1
Первое слагаемое 0 0 1 1 0 1
Второе слагаемое 0 0 1 1 0 1