Настройка указателя стека (SP) при прерывании RST 5.5 - PullRequest
0 голосов
/ 11 мая 2019

В микропроцессоре-8085 мы запускаем команду CALL 3000H . Программный счетчик (ПК) равен (ПК) = 2000H , а указатель стека равен (SP) = 4000H . В середине выполнения команды мы имеем прерывание RST 5.5. Я хочу определить новые значения ПК и SP. Я также хочу найти содержимое стека и операции, выполняемые до и после процедуры возврата.

Я считаю, что поскольку прерывание происходит после запуска команды CALL 3000H, команда будет выполнена. После его окончания происходит прерывание. Счетчик программ (ПК) должен храниться в стеке, чтобы программа могла вернуться к точке, в которой был сделан вызов. Это означает, что (SP) настроен. Программный счетчик (ПК) примет значение (ПК) = 002CH после прерывания RST 5.5.

Мой подход правильный? Если так, я все еще немного запутался с указателем стека (SP) и стеком. Что именно произойдет с настройкой стека и значения (SP)?

1 Ответ

1 голос
/ 11 мая 2019

Вы правы, так как прерывание поступило после начала инструкции вызова, инструкция завершится, а затем прерывание будет обработано.

Итак, сначала указатель стека уменьшается на 2,ПК инструкции после вызова (2003h) сохраняется в 3ffeh, и ПК загружается адресатом вызова (3000h).

Затем прерывание обрабатывается: SP снова уменьшается до 3ffchПК хранится там (3000h), и на него загружается адрес обработчика прерываний.

...