К этой группе относятся следующие 8 регистров:
- АХ accumulator, аккумулятор;
- ВХ base, база;
- СХ counter, счетчик;
- DX data, данные;
Хотя названия многих из этих регистров малоосмысленны, все же приведем расшифровку этих названий:
- SI source index, индекс источника;
- DI destination index, индекс приемника;
- ВР base pointer, указатель базы;
- SP stack pointer, указатель стека.
Особенностью всех этих регистров является то, что их можно использовать в любых арифметических, логических и т. п. машинных операциях. Например, можно сложить число из регистра DI с числом из регистра SP или вычесть из содержимого регистра ВР содержимое регистра СХ.
В то же время каждый из этих регистров имеет определенную специализацию: некоторые команды требуют, чтобы их операнд или операнды обязательно находились в определенных регистрах. Например, команда деления требует, чтобы первый операнд (делимое) находился в регистре АХ или в регистрах АХ и DX (в зависимости от размера операнда), а команды управления циклом используют регистр СХ в качестве счетчика цикла. Такая специализация регистров будет рассматриваться по ходу дела, при описании команд, а пока расскажем о других специализациях этих регистров.
Сегментные регистры
Вторую группу регистров образуют следующие 4 регистра:
названия которых расшифровываются так:
- CS code segment, сегмент команд;
- DS data segment, сегмент данных;
- SS stack segment, сегмент стека;
- ES extra segment, дополнительный сегмент.
Ни в каких арифметических, логических и т. п. операциях эти регистры не могут участвовать. Можно только записывать в них и считывать из них, да и то здесь есть определенные ограничения.
Эти регистры используются для сегментирования адресов, которое является разновидностью модификации адресов и которое используется для сокращения размера команд.
|
Указатель команд
Еще один регистр ПК - это регистр IP (instruction pointer, указатель команд):
В этом регистре всегда находится адрес команды, которая должна быть выполнена следующей. Более точно, в IP находится адрес этой команды, отсчитанный от начача сегмента команд, на начало которого указывает регистр CS. Поэтому абсолютный адрес этой команды определяется парой регистров CS и IP. Изменение любого из этих регистров есть ничто иное, как переход. Поэтому содержимое регистра IP (как и CS) можно менять только командами перехода.
Регистр флагов
И, наконец, в ПК имеется регистр флагов. Флаг - это бит, принимающий значение 1 ("флаг установлен"), если выполнено некоторое условие, и значение О ("флаг сброшен") в противном случае. В ПК используется 9 флагов, причем конструктивно они собраны в один 16-разрядный регистр, называемый регистром флагов и обозначаемый как Flags. Каждый флаг - это один из разрядов данного регистра (некоторые разряды регистра не заняты):
Некоторые флаги принято называть флагами условий; они автоматически меняются при выполнении команд и фиксируют те или иные свойства их результата (например, равен ли он нулю); проверка этих флагов позволяет проанализировать результаты команд. Другие флаги называются флагами состояний; сами по себе они не меняются и менять их должна программа; состояние этих флагов оказывает влияние на дальнейшее поведение процессора.
Лекция 3
Тема: Представление данных
Содержание: Представление целых чисел. Целые числа без знакаю. Целые числа со знаком Двоично-десятичные числа. О вещественных числах. Представление символьных данных.