Примеры использования команд арифметических операций
Пример 2.7. Сложить два двоичных многобайтных числа. Оба слагаемых располагаются в РПД, начиная с младшего байта. Начальные адреса слагаемых заданы в R0 и R1. Формат слагаемых в байтах задан в R2:
CLR C ; сброс переноса
LOOP: MOV A, @R0 ; загрузка в аккумулятор
; текущего байта первого
; слагаемого
ADDC A, @R1 ; сложение байт с учетом
; переноса
MOV @R0, A ; размещение байта результата
INC R0 ; увеличение указателей
INC R! ;
DJNZ R2, LOOP ; цикл, если не все байты
; просуммированы
При сложении чисел без знака на переполнение укажет флаг C, а в случае сложения чисел со знаком – флаг OV.
Пример 2.8. Умножить целое двоичное число произвольного формата на константу 173. Исходное число размещается в РПД, адрес младшего байта находится в регистре R0. Формат числа в байтах хранится в регистре R1:
MOV A, #0 ; сброс аккумулятора
LOOP: ADD A, @R0 ; загрузка множимого
MOV B, #173 ; загрузка множителя
MUL AB ; умножение
MOV @R0, A ; запись младшего байта
; частичного произведения
INC R0 ; увеличение адреса
MOV A, B ; пересылка старшего байта
; частичного произведения в
; аккумулятор
XCH A, @R0 ; предварительное
; формирование очередного
; байта произведения
DJNZ R2, LOOP ; цикл, если не все биты
; исходного числа умножены
; на константу
Полученное произведение размещается на месте исходного числа и занимает на один байт больше.
Пример 2.9. Перевести двоичное число, содержащееся в аккумуляторе в двоично-десятичную систему. При таком преобразовании может получиться трехразрядное двоично-десятичное число. Старшая цифра будет размещена в регистре R0, а две младшие в аккумуляторе.
MOV B, #100 ; загрузка B для вычисления
; количества сотен в числе
DIV AB ; определение старшей цифры
MOV R0, A ; пересылка в R0 старшей
; цифры
XCH A, B ; пересылка остатка исходного
; числа в аккумулятор
MOV B, #10 ; загрузка B для вычисления
; количества десятков в числе
DIV AB ; определение числа десятков
SWAP A ; размещение числа десятков
; в старшей тетраде A
ADD A, B ; подсуммирование остатка в
; A обе младшие цифры числа
Дата добавления: 2015-09-11; просмотров: 1285;