Курсовая работа: Обработка сигналов на основе MCS-51

ADD A, R3 ; добавление байтов

CPL A ; получение разности

Пример 13. Сложить два двоичных многобайтных числа. Оба слагаемых находятся в РПД, начиная из младшего байта. Начальный адрес слагаемых находится в R0 и R1, формат в R2. Результат размещают на месте первого слагаемого.

CLR С ; сбрасывание переноса

LOOP: MOV A,@R0 ; загрузка в аккумулятор; бегущего байта первого слагаемого

ADDC A,@R1 ; добавление байтов с учетом переноса

MOV @R0, A ; размещение байта результата

INC R0 ; смещение указателя

INC Rl ; смещение указателя

DJNZ R2, LOOP ; цикл, если не все байты просуммированы

Время суммирования составляет (1+7N) мкс, где N – длина в байтах.

Пример 14. Перемножить число в аккумуляторе на число 2х , где х ≤ 8 – значение в R6. Умножение на 2 заменяется арифметическим сдвигом аккумулятора и R0:

MOV R0,#0 ; сброс R0

CLR С ; сброс переноса

LI: RLC А ; сдвиг влево 16-разрядного данного в А и R0

ХСН А, R0

RLC A

ХСН А, R0

DJNZ R6, L1 ; цикл

Пример 15. Умножение (MUL). Выполняется для двух беззнаковых чисел, которые находятся в регистрах А и В. После выполнения операции младший байт произведения размещается в А, а старший – в В.

Умножение числа любого формата на константу 168. Число размещено в РПД, адрес младшего байта находится в R0. Формат числа в байтах задан в R2.

MOV А,#00Н ; сброс аккумулятора А

LOOP: ADD A,@R0 ; загрузка множимого

MOV B,#168D ; загрузка множителя

MUL AB ; перемножение

MOV @R0, A ; запись младшего байта частичного произведения

INC R0 ; прирост адреса

MOV А, В ; пересылка старшего байта частичного произведения в аккумулятор А

ХСН A,@R0 ; предшествующее формирование очередного байта произведения

К-во Просмотров: 507
Бесплатно скачать Курсовая работа: Обработка сигналов на основе MCS-51