Стек для вызова процедуры
і возврата і
ГДДДДДДДДДДДДґ
і Смещение і
і аргумента і
ГДДДДДДДДДДДДґ
і Сегмент і
і аргумента і
ГДДДДДДДДДДДДґ
Фиг. 10. 13 Стек для вызова процедуры в Фортране
Подпрограмма TIMER на Фиг. 10.12 адресует стек, помещая в него
регистр BP и устанавливая его на вершину стека.Структура FRAME
помогает идентифицировать разные значения в стеке после того как
программа сохранит в нем значение BP. Команда LES BX,[BP]+A
помещает адрес параметра в пару регистров ES:BX. Используя этот
адрес, программа помещает четырехбайтовое значение текущего времени
в четырехбайтовую целую переменную.
Заметим, что процедура TIMER извлекает адрес параметра из стека
при выполнении команды возврата точно так же, как это делалось в
программах на языке Бейсик. Заметим также, что в этой ассемблерной
программе для идентификации имени TIMER используется оператор
PUBLIC. Делается это для того, чтобы редактор связей мог найти
подпрограмму и правильно связать ее с программой на Фортране. Для
интерпретатора Бейсика такой необходимости не было, поскольку
программа на Бейсике не редактировалась совместно с программой на
языке ассемблера.
Содержание Назад
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий