Регистры-указатели
Помимо локальных переменных, в стеках хранятся временные результаты выполнения.
В процессоре 8088 есть команда PUSH, которая помещает 16-разряд- ное слово на вершину стека. Для этого она сначала уменьшает значение регистра SP на 2, а затем сохраняет свой операнд по адресу, на который этот регистр указывает после обновления. Команда POP удаляет 16-разрядные слова с вершины стека аналогичным образом — выбирает размещенное на этой вершине значение и прибавляет к содержимому регистра SP двойку. Регистр SP, указывающий на вершину стека, можно изменить командами PUSH, POP и CALL; при этом PUSH и CALL уменьшают его значение, a POP, наоборот, увеличивает.Следующий регистр в этой группе называется указателем базы (ВР). Обычно в него записывается некий адрес в стеке.
В отличие от регистра SP, который всегда указывает на вершину стека, ВР может указывать на любое место в стеке. Чаще всего регистр ВР применяется для указания на начало стекового фрейма текущей процедуры; тем самым упрощается задача поиска ее локальных переменных. Таким образом, ВР часто указывает дно текущего стекового фрейма (иными словами, на слово в стековом фрейме с наименьшим числовым значением), a SP — на его вершину (на слово в стековом фрейме с наибольшим числовым значением). Следовательно, границы текущего стекового фрейма определяются значениями регистров-указателей ВР и SP.В этой группе есть два индексных регистра: SI (Source Index — индекс источника) и DI (Destination Index — индекс приемника). В сочетании с ВР эти регистры часто употребляются для адресации данных в стеке, а в сочетании с ВХ — для вычисления адресов памяти. Более подробно о применении этих регистров мы поговорим в разделе, посвященном режимам адресации.
Один из важнейших регистров, составляющий самодостаточную группу, называется указателем команд; этот термин введен Intel, в общем случае такой регистр называется счетчиком команд (PC). Команды обращаются к нему за адресами кодовых сегментов в памяти. Цикл выполнения команд процессором начинается с выборки команды, на которую указывает регистр PC. Перед выполнением последующих команд цикла к значению этого регистра прибавляется единица. Таким образом, счетчик команд всегда указывает на первую команду вслед за текущей.
Флаговый регистр, или регистр кода условия, по существу, представляет собой целый набор регистров, по одному биту каждый:
+ Z — нулевой результат;
+ S — отрицательный результат (знаковый бит);
+ V — результат породил переполнение;
+ С — результат породил перенос;
+ А — служебный перенос (из бита 3);
+ Р — четность результата.
Другие биты в этом регистре регулируют различные аспекты работы процессора. В частности, бит I включает прерывания, а бит Т — режим трассировки, применяемый для отладки программ. Наконец, бит D регулирует направление строковых операций. Не все 16 бит флагового регистра задействованы; неиспользуемые биты имеют фиксированное нулевое значение.
К группе сегментных регистров причисляется четыре регистра. Как вы помните, стек, данные и коды команд хранятся в разных областях основной памяти. Сегментные регистры объединяют эти области памяти, называемые сегментами. К сегментным регистрам относятся регистр кодового сегмента (СБ), регистр сегмента данных (ОБ), регистр стекового сегмента (ББ) и регистр дополнительного сегмента (ЕБ). Большую часть времени их значения остаются неизменными. На самом деле сегмент данных и стековый сегмент относятся к одной и той же области памяти, но данные хранятся на дне этого общего сегмента, а стек — на вершине. Более подробно о сегментах мы поговорим в подразделе «Организация памяти и сегменты» раздела «Память и адресация».
Еще по теме Регистры-указатели:
- УКАЗАТЕЛЬ СОКРАЩЕНИЙ
- Алфавитно-предметный указатель
- Алфавитно-предметный указатель
- Алфавитно-предметный указатель
- АЛФАВИТНО-ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- ИНДЕКС
- Дополнительная литература
- СЛУХ АБСОЛЮТНЫЙ
- «Пристегнись!»
- ПАМЯТЬ: МОДЕЛЬ ТРЕХКОМПОНЕНТНАЯ
- Дополнительная литература
- Эд САЛЛИВАН. ВРЕМЯ — ДЕНЬГИ Создание команды разработчиков, программного обеспечения, 2001
- Дополнительная литература
- Дополнительная литература
- Сигнификаторы