Доступ процедур к параметрам



Доступ процедур к параметрам

При входе в процедуру в верхушке стека расположен адрес возврата, а перед ним параметры. Для работы с параметрами входящие в тело процедуры команды должны иметь прямой доступ к области стека. Как было сказано выше, для этой цели удобно использовать регистр вр, но при входе в подпрограмму его содержимое не определено. Поэтому в начале подпрограммы надо сохранить исходное содержимое bр и записать в него опорный (базовый) адрес, которым является текущее значение указателя стека.

охранение содержимого bр нужно для того, чтобы выполнение данной подпрограммы не влияло на выполнение вызывающего модуля. При выходе из подпрограммы перед выполнением команды ret сохраненное значение надо вытолкнуть в bр.

Таким образом, большинство подпрограмм, ориентированных на работу со стеком, начинается с двух следующих команд:

push bp ; сохранение исходного содержимого bpmov
bp, sp ; запись в bpдреса верхушки стека

Давайте уточним, что находится в стеке после выполнения этих команд. Для определенности будем считать, что вызвана внешняя подпрограмма, имеющая два параметра, каждый из которых занимает одно слово. Микропроцессор работает в реальном режиме, поэтому адрес возврата занимает два слова. В таком случае стек содержит величины, приведенные в табл. В.1.



- Начало - - Назад - - Вперед -




Книжный магазин