Для организации стековой памяти необходимо определить начальный адрес (вершину стека).
Примечание: в некоторых МПС начальный адрес стека определяется автоматически.
Для задания вершины стека используются два варианта команд:
1-ый вариант:
Б1 Б2 Б3 | LXI |
младший разряд | Адрес регист- ровой пары |
старший разряд |
(SР)←(< Б3>< Б2>)
SP – шестнадцатиразрядный указатель стека, т.е. в указателе стека
2-ой вариант:
Б1 | SPHL |
(SP)←(H-L)
Запись содержимого регистровой пары в стековую память:
Команда записи регистровой пары в стековую память
PUSH rr |
где rr – В-C, D-E, H-L, PSW.
Например:
PUSH В; Содержимое пары регистров В-С записывается в стековую память по адресу SP-1 и SP-2. После выполнения команды записи содержимого в стековую память в указателе стека (SP) изменяется адрес стековой памяти (уменьшается его значение на два: SP=SP-2).
Команда чтения содержимого стека в регистровую пару (чтение из стековой памяти)
РОР rr |
где rr – В-C, D-E, H-L, PSW.
По этой команде содержимое стековой памяти (два байта) из ОЗУ записываются в одну из регистровых пар РОН или PSW. После выполнения команды содержимое указателя стека увеличивается на два SP=SP+2.
Например:
РОР B; Содержимое двух ячеек стековой памяти по адресу SP+1 и SP+2 записывается в пару регистров B-C, а указатель вершины стека после выполнения команды принимает значение SP=SP+2.
6.2. Команда обращения к подпрограмме (CALL).
Дата добавления: 2015-10-09; просмотров: 929;