ВУЗ:
Составители:
18
1.2.3. Стек
Стек — это специальным образом организованный участок памяти,
используемый для временного хранения данных, для передачи параметров
вызываемым подпрограммам и для сохранения адреса возврата при вызове
процедур и прерываний. Легче всего представить стек в виде стопки листов
бумаги (это одно из значений слова «stack» в английском языке) — вы можете
класть и забирать
листы бумаги только с вершины стопки. Таким образом, если
записать в стек числа 1, 2, 3, то при чтении они будут получаться в обратном
порядке — 3, 2, 1. Стек располагается в сегменте памяти, описываемом регистром
SS, а текущее смещение вершины стека записано в регистре SP, причем при
записи в стек значение этого смещения уменьшается, то есть стек растет вниз от
максимально возможного адреса (рис. 7).
Рис. 7. Стек
При вызове подпрограммы параметры в большинстве случаев помещают в
стек, а в BP записывают текущее значение SP. Тогда, если подпрограмма
использует стек для временного хранения своих данных, SP изменится, но BP
можно будет использовать для того, чтобы считывать значения параметров
напрямую из стека (их смещения будут записываться как BP + номер параметра).
1.2.4. Регистр
флагов
Еще один важный регистр, использующийся при выполнении большинства
команд, — регистр флагов FLAGS. В этом регистре каждый бит является флагом,
18 1.2.3. Стек Стек — это специальным образом организованный участок памяти, используемый для временного хранения данных, для передачи параметров вызываемым подпрограммам и для сохранения адреса возврата при вызове процедур и прерываний. Легче всего представить стек в виде стопки листов бумаги (это одно из значений слова «stack» в английском языке) — вы можете класть и забирать листы бумаги только с вершины стопки. Таким образом, если записать в стек числа 1, 2, 3, то при чтении они будут получаться в обратном порядке — 3, 2, 1. Стек располагается в сегменте памяти, описываемом регистром SS, а текущее смещение вершины стека записано в регистре SP, причем при записи в стек значение этого смещения уменьшается, то есть стек растет вниз от максимально возможного адреса (рис. 7). Рис. 7. Стек При вызове подпрограммы параметры в большинстве случаев помещают в стек, а в BP записывают текущее значение SP. Тогда, если подпрограмма использует стек для временного хранения своих данных, SP изменится, но BP можно будет использовать для того, чтобы считывать значения параметров напрямую из стека (их смещения будут записываться как BP + номер параметра). 1.2.4. Регистр флагов Еще один важный регистр, использующийся при выполнении большинства команд, — регистр флагов FLAGS. В этом регистре каждый бит является флагом,
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »