Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Принципы работы со стеком




Стек – область памяти, специально выделяемая для временного хранения данных программы. Для работы со стеком предназначены три регистра:

SS – регистр сегмента стека;

SP – регистр указателя стека;

BP – регистр указателя базы кадра стека

Стеков может быть несколько. В постоянный момент времени доступен только один стек, адрес сегмента которого содержится в регистре SS. Для обращения к другому стеку в регистр SS можно загрузить его адрес.

Особенности работы со стеком.

Запись и чтение данных в стеке осуществляется по принципу LIFO

0000.0000    
Сегмент кода  
Сегмент данных  
Сегмент стека  
Вершина стека SS:SP
Дно стека SS:ffff

По мере записи в стек области данных, он растет в сторону младших адресов. При использовании регистров SP и BP для адресации памяти, Assembler автоматически считает, что содержащиеся в нем значения представляют собой смещение относительно сегментного регистра SS. Регистр SP указывает на вершину стека, т.е. содержит смещение, по которому в стек был записан последний элемент. При записи элементов в стек, процессор сначала уменьшает значение SP, а затем записывает элемент по адресу новой вершины. При извлечении данных из стека процессор копирует элемент, расположенный по адресу вершины, затем увеличивает значение регистра указателя стека SP.

Для доступа к элементам внутри стека используют регистр BP.

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

1. push <источник> (ax)

Алгоритм работы:

1. Уменьшает SP на 2

2. Значение источника записывается по адресу, указываемого парой SS:SP

2. pop <приемник>

Выполняет запись из вершин стека по адресу, указанного приемником.

Алгоритм работы:

1. Запись содержимого в вершину стека по месту указываемого приемником

2. Увеличение SP на 2

Основные виды операций, использующие стек: вызов подпрограмм, временное сохранение значений регистров, определение локальных переменных в процедуре





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 1144 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Так просто быть добрым - нужно только представить себя на месте другого человека прежде, чем начать его судить. © Марлен Дитрих
==> читать все изречения...

2443 - | 2198 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.