- •Лабораторная работа № 6-7 Арифметические команды
- •Цель работы
- •2.Основные теоретические сведения
- •3. Порядок выполнения работы
- •3.1. Исследование команд сложения
- •3.2. Команды вычитания
- •3.3. Команды инкремента
- •3.4. Команды декремента
- •3.4.1. Запишите в память симулятора следующие команды
- •3.5. Команда десятичной коррекции аккумулятора
- •3.6. Команда умножения
- •3.7. Команда деления
- •3.8. Задания для самостоятельной работы
- •4.Содержание отчета
- •Контрольные вопросы
3.8. Задания для самостоятельной работы
Разработайте подпрограмму сложения трехбайтных целых двоичных чисел. Первое число находится в памяти данных в ячейках 20H (младший байт - МлБ), 21H (средний байт – СрБ) и 22H (старший байт – СтБ). Второе число находится в регистрах R3 (МлБ), R4 (СрБ) и R5 (СтБ). Результат сложения поместите в ячейки ПД с адресами 30H (МлБ), 31H (СрБ), 32H (СтБ). Разработайте 2 варианта программы
А) с использование прямой адресации ячеек ПД
Б) с использованием косвенной адресации ячеек ПД.
Программы разместите в файлах с именами, например, sum_1.asm и sum_2.asm. Получите файлы с расширением .obj и .hex. Проверьте работу программ с помощью симулятора. Результаты работы программ занесите в таблицы по форме табл. 4.3. Проверьте правильность работы программ «вручную» или с помощью калькулятора.
Разработайте подпрограмму вычитания трехбайтных целых двоичных чисел. Первое число (уменьшаемое) находится в регистрах R5 (МлБ), R6 (СрБ) и R7 (СтБ). Второе число (вычитаемое) находится в ячейках памяти данных с адресами 38H (МлБ), 39H (СрБ) и 3AH (СтБ). Результат вычитания поместите в регистры DPTR (СрБ и МлБ) и B (СтБ). Разработайте 2 варианта программы
А) с использованием прямой адресации ячеек ПД
Б) с использованием косвенной адресации ячеек ПД.
Программы разместите в файлах с именами, например, sub_1.asm и sub_2.asm. Получите файлы с расширением .obj и .hex. Проверьте работу программ с помощью симулятора. Результаты работы программ занесите в таблицы по форме табл. 5. Проверьте правильность работы программ «вручную» или с помощью калькулятора.
Разработайте подпрограмму умножения двухбайтного целого числа на однобайтное с помощью команды MUL AB. Двухбайтное число располагается в памяти данных в ячейках 30H (МлБ) и 31H (СтБ), а однобайтное находится в регистре R2. Результат (трехбайтное число) разместите следующим образом младший и средний байты – в регистре DPTR, а старший байт – в регистре R7.
Для разработки программы используйте алгоритм умножения «столбиком» чисел в десятичной системе, например
5 8 - множимое
* 7 - множитель
--------------------------------------
5 6 - 1-е частичное произведение
+
3 5 - 2-е частичное произведение
-----------------------------------------------------
4 0 6 - результат
Подпрограмму с именем MUL разместите в файле mul.asm. Получите файлы mul.obj и mul.hex. Исследуйте работу подпрограммы при различных значениях исходных данных (входных параметрах). Результаты разместите в табл. 9.
Таблица 9
-
Исходные значения
Получено
Число 1
Число 2
Практически
Теоретически
FFFFH
FFH
FEFF01H
F000H
0FH
0E1000H
5555H
AAH
38AA72H
Теоретические значения результатов умножения получены с помощью калькулятора.