Эти команды используются в ситуациях, когда необходимо подсчитывать число каких-то событий, т. е. когда регистр следит за тем, сколько раз была выполнена определенная операция.
К данной группе команд относятся:
Положительное приращение регистра INR r
Положительное приращение памяти INR М
Отрицательное приращение регистра DCR r
Отрицательное приращение памяти DCR М
Положительное приращение регистровой пары INX rp
Отрицательное приращение регистровой пары DCX rp
4.3. Задания к лабораторной работе
Задание №1.
Произвести вычитание двух чисел 30 81210 и 12 46010.
Для этого необходимо:
а) указанные числа перевести из десятичного формата в шестнадцатеричный;
б) составить программу вычисления в соответствии со следующим алгоритмом:
1. Загрузить младший байт (МБ) уменьшаемого в аккумулятор.
2. Вычесть младший байт вычитаемого из аккумулятора.
3. Результат (младший байт разности) записать в память.
4. Загрузить старший байт (СБ) уменьшаемого в аккумулятор.
5. Вычесть старший байт вычитаемого из аккумулятора с учетом бита переноса.
6. Результат (старший байт разности) записать в память.
7. Останов.
Текст программы и исходные данные желательно расположить в адресном пространстве ОЗУ в соответствии с таблицей 4.2;
Таблица 4.2
Адрес |
Содержимое |
8000 … 81FF |
Текст программы |
8200 |
МБ уменьшаемого |
8201 |
СБ уменьшаемого |
8202 |
МБ вычитаемого |
8203 |
СБ вычитаемого |
8204 |
МБ разности |
8205 |
СБ разности |
в) ввести исходные данные и выполнить программу в пошаговом режиме;
г) после выполнения каждого шага программы заносить в таблицу 4.3 содержимое регистров А, H, L и ячеек памяти с адресами 8204 и 8205;
Таблица 4.3
№ шага |
Рег. А |
Рег. H |
Рег. L |
8204 |
8205 |
Комментарий |
0 |
00 |
00 |
00 |
00 |
00 |
Исходные данные |
1 |
||||||
2 |
д) перевести результат из шестнадцатеричного формата в десятичный.
Задание №2.
Произвести умножение двух чисел 1210 и 310.
Для этого необходимо:
а) указанные числа перевести из десятичного формата в шестнадцатеричный;
б) составить программу вычисления в соответствии со следующим алгоритмом:
1. Загрузить первый сомножитель в регистр В.
2. Загрузить второй сомножитель в регистр С.
3. Загрузить содержимое регистра В в аккумулятор.
4. Уменьшить на 1 содержимое регистра С.
5. Сложить содержимое аккумулятора с содержимым регистра В;
6. Уменьшить на 1 содержимое регистра С.
7. Если содержимое регистра С не равно 0, перейти к п.5 *;
8. Результат (произведение) записать в память.
9. Останов.
* Команда JNZ, адрес осуществляет переход к выполнению команды, записанной по указанному адресу, при отсутствии нулевого результата (флаг нуля не установлен)
Текст программы и исходные данные желательно расположить в адресном пространстве ОЗУ в соответствии с таблицей 4.4;
Таблица 4.4
Адрес |
Содержимое |
8000 … 81FF |
Текст программы |
8200 |
1-й сомножитель |
8201 |
2-й сомножитель |
8202 |
Произведение |
в) ввести исходные данные и выполнить программу в пошаговом режиме;
г) после выполнения каждого шага программы заносить в таблицу 4.5 содержимое регистров А, В, С, H, L, ячейки памяти с адресом 8202 и состояние флага нулевого результата;
Таблица 4.5
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.