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


Стек


    Стек - это структура данных, которая используется для временного
    хранения информации.  Программа может поместить данные в стек
    (PUSH) или забрать их оттуда (POP).  Стековая структура данных
    предполагает упорядочивание помещенных в него данных специальным
    образом.  Во всех случаях первым из стека извлекается то, что было
    в нем сохранено последним.      Такая организация хранения данных
    сокращенно обозначается LIFO (last in, first out - последний
    введенный первым выводится).  Если мы поместили в стек сначала A,
    затем B, то первое, что мы извлечем из него будет B.  Следующая
    команда извлечения (POP) вернет A.    Информация возвращается из
    стека в порядке, строго противоположном порядку ее помещения в
    стек.
 
      Стек противоположен очереди.  Очередь - это обычная последова-
    тельность, подобная очередям на почте или в магазине.  Это
    структура данных типа "первым вошел - первым вышел" (first in,
    first out:    FIFO).      Тот, кто первым встал в очередь, первым и
    покинет ее.  Стек и очередь - очень разные вещи.
 
      Компьютер снабжает стек зарезервированным участком памяти и
    указателем, называемым указателем стека.  Программа использует ука-
    затель стека для того, чтобы фиксировать последние помещенные в
    стек данные, в отличие от почты, где сами элементы очереди продви-
    гаются вперед по мере движения очереди.  В компьютере намного легче
    использовать для слежения за данными указатель и при записи или
    считывании данных из стека изменять только его.  В ответ на
    выполнение операций POP и PUSH указатель стека соответственно
    увеличивается или уменьшается.
 
      Фиг.  2.19 дает пример стека.  В части (a) изображен стек после
    того как в него последовательно помещены значения A, B, C.    Ука-
    затель стека указывает на текущую вершину стека, в данном случае на
    C.      В части (b) в стек помещается еще одно значение:  D.  Операция
    PUSH уменьшает указатель стека SP (от Stack Pointer - указатель



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