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

Операции со стеком


    В гл.3 обсуждалось, как реализован стек в микропроцессоре 8088.
    Микропроцессор 8088 адресует стек с помощью регистровой пары SS:SP.
    Помещение объектов в стек приводит к тому, что он растет в сторону
    меньших адресов памяти.  Стек, кроме всего прочего, служит и для
    запоминания адресов возврата из подпрограмм.  В этом разделе
    рассматриваются некоторые команды, которые непосредственно работают
    со стеком.
 
      Фиг.4.7 иллюстрирует ассемблированные стековые команды.
    Мнемоника команд очевидна; за кодами операций PUSH и POP следует
    имя регистра для указания операнда. Единственным исключением
    является помещение и извлечение из стека регистра флагов, которые


    используют мнемонику PUSHF и POPF соответственно. Содержимое любой
    ячейки памяти, которую программа может адресовать, используя
    возможные способы адресации, также может быть помещено или
    извлечено из стека.
 
      При любых действиях со стеком в микропроцессоре 8088 базовой
    единицей информации является 16=битовое слово. Длина любого
    объекта, помещаемого в стек либо извлекаемого из стека, составляет
    одно или несколько слов. Байтовых команд, связанных с засылкой
    данных или извлечением их из стека, не существует. Если, например,
    программе необходимо сохранить содержимое регистра AL а стеке, она
    должна поместить содержимое регистра AX, так как не существует
    способа сохранения только содержимого регистра AL.
 
      Основное назначение стека - временное хранение информации. Как
    мы уже видели, стек используется для сохранения адреса возврата;
    программа также может сохранять данные. Если программа хочет
    использовать регистр, пусть даже сохранить текущие данные, она
    может послать значение этого регистра в стек. Эти данные
    сохраняются в стеке и позже могут быть восстановлены. Например,
           Microsoft (R) Macro Assembler Version 5.00              1/1/80 04:00:43
           Фиг. 4.7 Операции со стеком                      Page   1-1



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