Составители:
Таблица 3.3. Программа пересылки массива
Адрес Машинный код Мнемокод Комментарий
Сохранение регистров в стеке
0800 C5 PUSH B
0801 D5 PUSH D
0802 E5 PUSH H
Непосредственная пересылка
0803 1A цикл: LDAX D
0804 02 STAX B Если множитель = 0
0805 03 INX B
0806 13 INX D
0807 2B DCX H
0808 7C MOV A, H Если множимое = 0
0809 B5 ORA L (А) – множитель
080A C210308 JNZ цикл Счетчик циклов
Восстановление регистров
080D E1 POP H
080E D1 POP D
080F C1 POP B
0810 C9 RET
Использование стека
В табл. 3.3 приведена подпрограмма [6], демонстрирующая
использование стека для перемещения массива данных из одной области ОЗУ в
другую. Так как программа предназначена для случая, когда адрес начала
массива-источника принадлежит области массива-приемника, пересылка
начинается с младших разрядов.
Параметры подпрограммы:
(D, E) – адрес начала массива-источника;
(B, C) – адрес начала массива-приемника;
(H, L) – длина массива.
3.3. Порядок выполнения работы
1. Ознакомиться с программами умножения У88 Б1 и У168.
2. Ввести эти программы и выполнить умножение чисел, заданных
преподавателем в покомандном режиме.
3. Составить таблицу, отражающую содержимое регистров после
выполнения каждой команды.
4. Ввести подпрограмму, демонстрирующую использование стека для
перемещения массива данных в ОЗУ.
5. Выполнить перемещение массива по заданию преподавателя.
3.4. Содержание отчета
17
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »