Сегментные регистры.
Сегментные регистры используются для определения начального адреса специальных областей памяти, называемых сегментами.
Начальный адрес сегмента – это адрес ячейки памяти, с которой начинается сегмент.
Сегменты используются для размещения различных частей компьютерной программы.
1. CS – сегмент команд. В этом регистре указывается начальный адрес сегмента команд. Сегмент команд содержит последовательность команд компьютерной программы.
2. DS – сегмент данных. В этом регистре указывается начальный адрес сегмента данных. Сегмент данных содержит исходные данные, необходимые для выполнения компьютерной программы.
3. SS – сегмент стека. В этом регистре указывается начальный адрес сегмента стека. Сегмент стека содержит стековую память, в которой хранятся адреса возврата программных прерываний.
4. ES – дополнительный сегмент. Дополнительный сегмент используется для временного хранения промежуточных результатов вычислений в ходе выполнения компьютерной программы.
Регистр флагов.
Регистр флагов предназначен для индикации различных событий, происходящих в АЛУ при выполнении команд компьютерной программы. Регистр флагов содержит 8 бит. Каждый бит называется флаг. Флаг может принимать либо значение 0, либо значение1. Если флаг имеет значение 0 – говорится, что флаг сброшен. Если флаг имеет значение1 – говорится, что флаг установлен.
Например одним из флагов регистра является флаг Z, который называется флаг нуля. Если флаг Z сброшен, значит, при выполнении арифметической операции в АЛУ получен результат, отличный от нуля. Если флаг Z установлен, значит, при выполнении арифметической операции в АЛУ получен нулевой результат.
В регистре флагов имеются также флаг отрицательного числа, флаг четности и т.д. Анализируя флаги регистра флагов можно получить характеристику числа, полученного в АЛУ в результате выполнения конкретной команды: нулевое число или нет, положительное или отрицательное и т.д.
Регистр счетчик команд.
IP – счетчик команд. Счетчик команд служит для определения адреса ячейки оперативной памяти, в которой находится текущая команда программы.
Текущая команда – это команда программы, которую должен выполнить процессор в ближайшем цикле своей работы.
Изменяя содержимое счетчика команд, можно управлять процессором, т.к. процессор будет выполнять только ту команду, адрес которой находится в регистре IP.
Для размещения команд компьютерной программы выделяется сегмент команд Поэтому все команды программы адресуются внутри сегмента команд, начиная с адреса 0. Такие адреса команд называются относительные адреса. В регистре IP находится именно относительный адрес команды.
Относительные адреса – это адреса, которые нумеруются не с начальной ячейки оперативной памяти, а с начальной ячейки сегмента, и существуют только в пределах этого сегмента.