Исследование команд микроконтроллеров семейства МК51. Исследование команд сложения и вычитания. Сложение младших и старших байтов

Страницы работы

9 страниц (Word-файл)

Содержание работы

                                       Лабораторная работа  2

               Исследование команд микроконтроллеров семейства МК51

1.  Цель работы

Изучить и исследовать команды микроконтроллеров семейства МК51:           арифметические, логические, пересылки, операций с битами и перехода.

2. Исследование команд сложения и вычитания

2.1. Необходимо  сложить содержимое регистра R7 и ячейки памяти данных с адресом 30H. При использовании прямой адресации программа будет иметь вид:

MOV  A,R7          ; Загрузка операнда в аккумулятор

ADD   A,30H       ; Сложение

Результат операции сложения фиксируется в аккумуляторе, установка флага переноса C будет свидетельствовать о переполнении.

При использовании косвенной адресации программа имеет вид:

MOV A,R7

MOV  R0,#30H    ; Загрузка в R0 адреса ячейки ПД

ADD A,@R0        ; Сложение

Таблица 1.1

Исходные данные               

Получено          

Получено                

Теоретически            

Практически

Регистр R7     Ячейка 30H     

Регистр A   Флаг C 

Регистр A    Флаг C

     11H                 55H

        66H              0

          66H              0

CCH                55H

21H              1

21H              1

При использовании косвенной адресации программа имеет вид:

MOV A,R7

MOV  R0,#30H    ; Загрузка в R0 адреса ячейки ПД

ADD A,@R0        ; Сложение

Таблица 1.2

Исходные данные               

Получено          

Получено                

Теоретически            

Практически

Регистр R7     Ячейка 30H     

Регистр A   Флаг C 

Регистр A    Флаг C

     11H                 55H

        66H              0

          66H              0

CCH                55H

21H              1

21H              1

Вычесть из содержимого регистра R7 содержимое ячейки памяти данных с адресом 30H. При использовании прямой адресации программа будет иметь вид:

MOV  A,R7

CLR   C            ;Сброс флага C

SUBB  A,30H  ;Вычитание

Если после операции вычитания флаг C=0, значит результат -  положительное число (уменьшаемое больше вычитаемого). Если же  флаг C=1, то результат – отрицательное число в дополнительном коде (уменьшаемое меньше вычитаемого).

При использовании косвенной адресации программа вычитания будет:

MOV A,R7

CLR  C

MOV  R0,#30H  ;Загрузка адреса ячейки ПД в R0

SUBB A,@R0    ;Вычитание

Задание 3.  Запустите отладчик AVSIM51 и запишите в память программу вычитания по варианту 1. Исследуйте работу программы в пошаговом режиме при различных исходных данных. Результаты занесите в табл.2.

Таблица 2

Исходные данные               

Получено          

Получено                

Теоретически            

Практически

Регистр R7     Ячейка 30H     

Регистр A   Флаг C 

Регистр A    Флаг C

     CCH                 55H

11H                55H

Задание 4. Запишите в память отладчика программу вычитания по варианту 2. Исследуйте работу программы в пошаговом режиме при различных исходных данных. Результаты занесите в таблицу  по форме табл.2. Сделайте выводы по результатам вычислений.

2.3. При использовании многобайтных чисел сложение начинается с младших байтов с помощью команд ADD, затем поочередно складываются старшие байты с помощью команд ADDC. Если в результате сложения всех байтов установится флаг C, это укажет на переполнение суммы.

Например, нужно сложить два двоичных двухбайтных числа, расположенных в памяти данных. Первое число находится в ячейках 30H (младший байт – МлБ) и 31H (старший байт – СтБ). Второе число – в ячейках 38H (МлБ) и 39H (СтБ). Результат сложения (сумму) поместить в регистр DPTR. Подпрограмма сложения ADD_1 при использовании косвенной адресации ячеек памяти имеет вид:

DATA1:  EQU    30H             ; Символический адрес числа 1 (МлБ)

DATA2:  EQU    38H             ; Символический адрес числа 2 (МлБ)

ADD_1:  MOV  R0,#DATA1 ; Загрузка в R0 адреса 1-го числа

MOV  R1,#DATA2 ; Загрузка в К1 адреса 2-го числа

MOV  A,@R0

ADD  A,@R1          ; Сложение младших байтов

Похожие материалы

Информация о работе