Assembler для начинающих


         

Стек для вызова процедуры


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

Содержание  Назад  





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий