Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 13. Регистры.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
151.55 Кб
Скачать

12.4. Регистры условий

Регистры условий также в определенной мере программно доступны, хотя набор операций с ними со стороны программы очень ограничен. Эти регистры (или регистр) хранят одноразрядные коды условий, которые в архитектуре фирмы Intel называют флагами. Большинство флагов устанавливается процессором в зависимости от значения результата последней выполненной арифметической или логической операции. Например, арифметическая операция может породить положительный или отрицательный результат, равный нулю или отличный от нуля, может про­изойти переполнение и т.д. Все эти свойства результата фиксируются в соответ­ствующих разрядах дополнительно к собственно результату, который фиксируется в каком-либо регистре данных или в ячейке оперативной памяти. Эти признаки могут быть проанализированы при выполнении команд условного перехода.

Разряды кодов условий объединяются в один или несколько регистров усло­вий. Обычно они включаются в регистр состояния. В общем случае эти признаки могут анализироваться машинными командами, но машинная команда не может их явно изменить. (Это возможно только при выполнении арифметической ко­манды со специально подобранными значениями операндов.)

В некоторых архитектурах процессоров при выполнении команд вызова подпрограмм ав­томатически сохраняется вся информация, размещенная в программно доступ­ных регистрах. При возврате из подпрограммы эта информация восстанавливает­ся. Такой механизм вызова и возврата из подпрограммы позволяет каждой под­программе независимо пользоваться всеми регистрами. В архитектурах процессоров, где такого автоматического сохранения/восстановления регистров не происходит, заботы о сохранении информации в регистрах перекладываются на программиста.

12.5. Регистры управления и состояния

В управлении работой процессора принимает участие несколько регистров. В большинстве моделей процессоров эти регистры недоступны программе, но могут неявно опрашиваться при выполнении некоторых привилегированных машинных команд в супервизорном режиме (такие команды используются в программах операционной системы). Нужно отметить, что разные модели процессоров имеют отличную друг от друга организацию регистров и, следовательно, отличную терминологию.

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

Регистр номера команды (Счетчик команд) - содержит адрес извлекаемой машинной команды;

Регистр текущей команды - содержит последнюю извлеченную машинную команду;

Регистр адреса в оперативной памяти - содержит адрес ячейки оперативной памяти;

Регистр данных памяти - содержит слово данных, которое должно быть записано в оперативную память или слово, только что из­влеченное из оперативной памяти.

Как правило, регистр номера команды (РНК) обновляется процессором сразу после того, как извлекается очередная машинная команда, и, таким образом, практически в течение всего цикла обработки команды в нем содержится ад­рес команды, которая должна выполняться в следующем цикле. Содержимое РНК также изменяется командами переходов и пропуска.

Извлеченная из оперативной па­мяти машинная команда помещается в регистр команды, а затем производится анализ отдельных ее полей — кода операции и полей операндов.

Данные из­влекаются из оперативной памяти с использованием регистра адреса данных и регистра данных.

Четыре перечисленных регистра используются при перемещении данных между процессором и оперативной памятью. Но внутри процессора данные должны передаваться в АЛУ для обработки. АЛУ имеет доступ, как к регистру данных, так и к программно доступным регистрам. Но возможен и такой вариант структуры процессора, в котором существуют дополнительные буферные регистры на стыке АЛУ с другими компонентами. Эти буферные регистры играют роль входных и выходных для АЛУ и обмениваются данными с регистром данных и с программно доступными регистрами.

Регистр слова состояния программы

Во всех моделях процессоров существуют один или несколько регистров, хранящих слово состояния программы. В состав этого регистра входят разряды кодов условий и некоторая другая информация о текущем состоянии программы (фактически, процессора). В большинстве моделей процессоров в слове состояния программы присутствуют если не все, то уж обязательно некоторые из перечисленных ниже признаков или полей:

S (знак). Содержит знаковый разряд результата последней арифметической операции.

Z (нуль). Устанавливается в 1, если результат последней операции равен нулю.

С (перенос). Устанавливает в 1, если в результате последней арифметической операции возник перенос (при сложении) или заем (при вычитании) из старшего значащего разряда. Используется при выполнении арифметических операций над многословными операндами.

Е (равенство). Устанавливает в 1, если при логическом сравнении обнаружено равенство операндов.

О (переполнение). Индикатор переполнения при выполнении по­следней арифметической операции.

I (разрешение/блокировка прерывания). Исполь­зуется для разрешения или блокировки прерывания.

SV (режим супервизора). Индикатор привилегированного ре­жима выполнения программы (режима супервизора). В режиме супервизора разрешается выполнение некоторых привилегированных машинных команд и доступ к защищенным областям оперативной памяти.

В конкретных моделях процессоров можно встретить и другие регистры, хранящие информацию о текущем состоянии процессора и управляющие режи­мом его функционирования. Помимо слова состояния программы это может быть регистр указателя блока оперативной памяти, содержащего дополнительную информацию о состоянии (т.е. бло­ка управления процессом). В состав процессоров, работающих с векторными прерываниями, включается регистр вектора прерывания. Если для выполнения некоторых функций используется стек, в составе процессора должен быть регистр указателя системного стека. Регистр указателя таблицы страниц необхо­дим в системах, работающих с виртуальной памятью. И, наконец, определенные регистры нужны для управления операциями ввода-вывода.