Перед выполнением пpогpаммы на вершине стека находились байты 001 и 010 в ячейках 201 и 200 соответственно. В результате работы пpогpаммы по адресу 200 был записан байт 000, а по адресу 201 - байт 011.
Команды PUSH записывает в стек слово по адресам (SP-1) и (SP-2). Команда POP считывает из стека слово по адресам (SP+1) и (SP). Указатель стека содержит адрес верхнего слова в стеке, таким образом, команда POP извлекает верхнее слово из стека, а команда PUSH - записывает следующее слово в стек.
Извлечение данных из стека в регистровую пару происходит в сторону увеличения адресов, а занесение идет в сторону уменьшения. При включении микроЭВМ указатель стека указывает на адрес начала стека, что и обуславливает необходимость инициализации стека.
Программа 4: Сложение содержимого регистра и содержимого ячейки памяти
Таблица №4
Адрес |
Команда |
Мнемоника |
Комментарий |
000 |
041 |
LXI Н |
Загрузка начального адреса в указатель памяти |
001 |
200 |
B2 |
Младший байт адреса |
002 |
000 |
B3 |
Старший. байт адреса |
003 |
076 |
MVI A |
Загрузка А одним из слагаемых |
004 |
010 |
B2 |
Байт данных слагаемого |
005 |
206 |
ADD M |
Сложение А с памятью |
006 |
167 |
MOV M,A |
Запоминание в стеке регистровой пары BC |
007 |
166 |
HLT |
Останов |
В паре HL устанавливается адрес 000 200, по которому записано число 100. В регистр А загружается число 010.
Это число складывается с числом из указанной ячейки памяти. После этого содержимое А опять записывается в память.
Результат выполнения программы:
Адрес Содержимое
000 200 110
При замене команды по адресу 005 ADD М ( код 206 ) командой ADC М ( код 216 ) получили результат:
Адрес Содержимое
000 200 120
Отличие ADD M от ADC M в том, что во второй к регистру А (аккумулятору) добавляется флаг переноса ‘с’.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.