Стек растет в сторону младших адресов памяти. Сначала записывается байт из старшего регистра регистровой пары (В), затем младший байт (С). Также существенно то, что запись происходит по адресу, предшествующему тому, на который ссылается указатель стека. После выполнения команды PUSH B указатель стека SP = 000 200.
Содержимое памяти после исполнения программы:
Адрес Содержимое
000 200 223
000 201 332
Программа 3 реализует суммирование содержимое аккумулятора с содержимым ячейки памяти.
Таблица 3.
Адреса (L) |
Команды |
Мнемоника команд |
Комментарии |
000 |
041 |
LXI H |
;Загрузка начального адреса памяти: |
001 |
200 |
B2 |
;000 200 |
002 |
000 |
B3 |
|
003 |
076 |
MVI A |
;Непосредственная загрузка одного из слагаемых в аккумулятор |
004 |
010 |
B2 |
;010->A |
005 |
206 |
ADD M |
;Сложение содержимого аккумулятора с содержимым ячейки памяти |
006 |
167 |
MOV M, A |
;Запоминание значения суммы в ячейке памяти |
007 |
166 |
HLT |
;Останов |
Исходные данные: (8 – в аккумуляторе)
Адрес Содержимое
000 200 177 (127)
Результат выполнения программы:
Адрес Содержимое
000 200 207 (135)
Результат выполнения программы правильный.
Программа 3.1. реализует вычитание двух чисел, одно из которых расположено в аккумуляторе. Результат выполнения фиксируется в памяти.
Таблица 4.
Адреса (L) |
Команды |
Мнемоника команд |
Комментарии |
000 |
041 |
LXI H |
;Загрузка начального адреса памяти: |
001 |
201 |
B2 |
;000 201 |
002 |
000 |
B3 |
|
003 |
176 |
MOV A,M |
;Перемещение из памяти в аккумулятор |
004 |
053 |
DCX H |
; Формирование предыдущего адреса памяти |
005 |
226 |
SUB M |
;(A)-(M)->(A) |
006 |
167 |
MOV M,A |
;Сохранение результата в памяти |
007 |
166 |
HLT |
;Останов |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.