Помощь в написании студенческих работ
Антистрессовый сервис

Слово состояния процессора

РефератПомощь в написанииУзнать стоимостьмоей работы

OF — (флаг переполнения) если равен 1, то в результате операции происходит перенос в старший знаковый бит результата или заем из старшего знакового бита результата, если равен 0 — значение говорит об отсутствии переноса или заема. VIP — (флаг отложенного прерывания) устанавливается в 1 для индикации отложенного прерывания. Применяется при работе в режиме виртуального процессора i8086 совместно… Читать ещё >

Слово состояния процессора (реферат, курсовая, диплом, контрольная)

В данном проекте ССП является регистр CR0.

Описание флагов:

PE — состояние флага показывает то, в каком режиме работает процессор: 0 — в реальном, 1- в защищенном.

MP — указывает на наличие сопроцессора (всегда 1).

TS — переключение задач. Автоматически устанавливается при переключении на выполнение другой задачи.

AM — маска выравнивания. Если равен 1, то контроль выравнивания разрешен, 0 — запрещен.

CD — блокирование кэш-памяти. Если равен 1, то использование внутренней кэш-памяти разрешено, 0 — запрещено.

PG — 1 — разрешение страничного преобразования, 0 — запрет.

NW — разрешение сквозной записи (Используется в механизме расширения кэширования).

WP — защита записи. Страницы защищены от записи в режиме супервизора.

NE — разрешает механизм регистрации ошибок FPU;

ET — установлен равным 1.

EM — устанавливается при отсутствии сопроцессора (ЕМ=0).

Регистровая модель

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

  • 1. Регистры общего назначения EAX/AX/AH/AL (регистр-аккумулятор применяется для хранения промежуточных данных), EBX/BX/BH/BL (базовый регистр задуман как место хранения базового адреса некоторого объекта в памяти), EDX/DX/DH/DL (регистр данных хранит промежуточные данные), ECX/CX/CH/CL (регистр-счетчик применяется в командах, производящих некоторые многократные действия), EBP/BP, ESI/SI, EDI/DI, ESP/SP предназначены для хранения данных и адресов, программист может их использовать (с определенными ограничениями) для реализации своих алгоритмов.
  • 2. Сегментные регистры CS, DS, SS, ES, FS, GS служат для хранения значений, интерпретация которых зависит от режима работы процессора. В реальном режиме сегментные регистры содержат адрес параграфа начала сегмента в памяти. В защищенном режиме сегментные регистры хранят индекс входа в одну из системных таблиц дескрипторов — GDT или LDT.
  • 3. Регистр указателя команд (instruction pointer register) EIP/IP имеет разрядность 32/16 бит и содержит смещение следующей подлежащей выполнению команды относительно начала сегмента кода. Этот регистр непосредственно недоступен программисту, то есть его нельзя указывать в качестве операнда команд. Но к нему возможен косвенный доступ, так загрузка и изменение его содержимого производятся в результате работы различных команд управления программным потоком, к которым относятся команды условных и безусловных переходов, вызова процедур и возврата из процедур. Возникновение прерываний также приводит к модификации содержимого регистра EIP/IP.
  • 4. Регистр флагов (FLAG register) имеет разрядность 32/16 бит. Отдельные биты данного регистра имеют функциональное назначение и называются флагами. Младшая часть регистра EFLAGS/FLAGS полностью аналогична регистру FLAGS процессора i8086.

Описание флагов:

Флаги состояния:

CF — (флаг переноса) если равен 1, то арифметическая операция произвела перенос из старшего бита результата или в старший бит результата. Старшим является 7-й, 15-й или 31-й бит в зависимости от размерности операнда; если CF равен 0 — переноса не было. Этот флаг показывает условие переполнения для беззнаковой арифметики.

PF — (флаг четности) если равен 1, то 8 младших разрядов результата содержат четное число единиц; если равен 0 — среди 8 младших разрядов результата количество единиц нечетно.

AF — (вспомогательный флаг переноса) применяется только для команд, работающих с BCD-числами. Если равен 1 — в результате операции сложения был произведен перенос из разряда 3 в старший разряд или при вычитании был заем в разряд 3; если равен 0 — переносов и заемов в третий разряд (из третьего разряда) результата не было.

ZF — (флаг нуля) когда равен 1 — результат нулевой; когда равен 0 — результат ненулевой.

SF — (флаг знака) если равен 1, то старший бит результата равен 1; если равен 0 — старший бит результата также 0.

OF — (флаг переполнения) если равен 1, то в результате операции происходит перенос в старший знаковый бит результата или заем из старшего знакового бита результата, если равен 0 — значение говорит об отсутствии переноса или заема.

Системные флаги и поле IOPL:

TF — (флаг трассировки) предназначен для организации пошаговой работы процессора: если он равен 1 — процессор генерирует прерывание с номером 1 после выполнения каждой машинной команды; если равен 0 — обычная работа.

IF — (флаг прерывания) предназначен контроля аппаратных прерываний: когда он равен 1 — аппаратные прерывания разрешены; при равенстве 0 — аппаратные прерывания запрещены.

IOPL — (уровень привилегированности ввода-вывода) используется в защищенном режиме работы процессора для контроля доступа к командам ввода-вывода в зависимости от назначенного задаче приоритета.

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

RF — (флаг возобновления) применяется при обработке прерываний от регистров отладки.

VM — (флаг виртуального процессора 8086) признак текущего режима процессора: если он равен 1 — процессор функционирует в режиме виртуального процессора 8086; равенство 0 означает работу в реальном или защищенном режиме.

AC — (флаг контроля выравнивания) предназначен для разрешения контроля выравнивания при обращениях к памяти. Используется совместно с битом AM в Системном регистре CR0.

VIF — (флаг виртуального прерывания) при определенных условиях, является аналогом флага IF. Флаг VIF используется совместно с флагом VIP (при CR4. VME = 1).

VIP — (флаг отложенного прерывания) устанавливается в 1 для индикации отложенного прерывания. Применяется при работе в режиме виртуального процессора i8086 совместно с флагом VIF (при CR4. VME = 1). Может быть установлен только программно.

ID — (флаг поддержки идентификации процессора) используется для индикации поддержки процессором инструкции CPUID.

Флаг управления:

DF — (флаг направления) определяет направление обработки данных. Если равен 1, то обработка происходит от конца к началу, если равен 0 — от начала к концу.

  • 5. 80-разрядные регистры сопроцессора R0 — R7 предназначены для написания программ, оперирующих данными с плавающей запятой;
  • 6. Регистр управления FPSR (CWR)

PC = 00 — длина мантиссы 24 бита;

PC = 10 — длина мантиссы 53 бита;

PC = 11 — длина мантиссы 64 бита;

В данной задаче значение PC = 00.

RC используется для задания характера округления.

P — ошибка точности;

U — потеря точности;

O — переполнение;

Z — деление на ноль;

D — денормализованный операнд;

I — недействительная операция.

7. Регистр состояния FPCR (SWR).

SF — индикатор ошибки работы стека FPU, устанавливается в 1 если возникает PE, UE или IE;

ES — ошибка FPU (любая из шести исключительных операций);

С0-С3 — выполнение условия;

TOP — указатель текущей вершины стека;

PE — ошибка точности;

UE — потеря точности;

OE — переполнение;

ZE — деление на ноль;

DE — денормализованный операнд;

IE — недействительная операция.

8. Регистр тегов TW.

Состоит из двухбитовых полей.

Возможные значения полей TW:

  • 00 — регистр занят допустимым ненулевым значением;
  • 01 — нулевое значение в регистре;
  • 10 — одно из специальных значений;
  • 11 — в регистр можно производить запись (регистр пуст).

Регистры общего назначения (РОН) и регистры с плавающей точкой (РПТ) не могут использоваться для нужд процессора, они зарезервированы за пользователем системы.

В дополнение к РЗУ в процессоре аппаратно реализуется следующий ряд регистров.

  • 1. Регистр оперативной памяти (РгЧтОП). Разрядность — 32. Хранит последнее прочитанное из ОП слово.
  • 2. Регистр оперативной памяти (РгЗаОП). Разрядность — 32. Регистр адреса ОП (РгАОП). Разрядность — 18. Хранит адрес слова оперативной памяти.
  • 3. Регистр команд (РгК). Разрядность — 48. Хранит текущую команду.
Показать весь текст
Заполнить форму текущей работой