Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция № 1 Введение. Архитектура ПК на основе INTEL процессоров.ppt
Скачиваний:
24
Добавлен:
07.08.2024
Размер:
774 Кб
Скачать
☆

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

Для того чтобы указать на сегменты, к которым программа имеет доступ в конкретный момент времени, и предназначены сегментные регистры. Фактически в этих регистрах содержатся адреса памяти, с которых начинаются соответствующие сегменты:

Сегмент кода. Содержит команды программы. Для доступа к этому сегменту служит регистр cs (code segment register) — сегментный регистр кода. Он содержит адрес сегмента с машинными командами, к которому имеет доступ микропроцессор (то есть эти команды загружаются в конвейер микропроцессора).

Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр ds (data segment register) — сегментный регистр данных, который хранит адрес сегмента данных текущей программы.

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

Сегмент стека. Этот сегмент представляет собой область памяти, называемую стеком. Работу со стеком микропроцессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым (дисциплина обслуживания

LIFO – Last Input First Output). Для доступа к этому сегменту служит регистр ss (stack segment register) — сегментный регистр стека, содержащий адрес сегмента стека.

Дополнительный сегмент данных. Если программе недостаточно одного сегмента данных, то она имеет возможность использовать еще три дополнительных сегмента данных. Адреса дополнительных сегментов данных должны содержаться в регистрах es, gs, fs (extension data segment registers).

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

Регистры флагов и указателя команд

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

•регистр флагов eflags/flags

•регистр указателя команды eip/ip

Используя эти регистры, можно получать информацию о результатах выполнения команд и влиять на состояние самого микропроцессора.

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

eflags/flags (flag register) — регистр флагов. Разрядность eflags/flags

— 32/16 бит. Отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Младшая часть этого регистра полностью аналогична регистру flags для 8086.

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

Регистр флагов дает возможность анализировать состояние вычислительного процесса и реагировать на него с помощью команд условных переходов и вызовов подпрограмм, а также управлять процессором.

Мнемоника флага

Флаг

Содержание и назначение

 

 

1 — арифметическая операция произвела перенос

 

Флаг переноса

из старшего бита результата. Старшим является 7,

cf

15 или 31–й бит в зависимости от размерности

 

(Carry Flag)

операнда;

 

 

0 — переноса не было

 

 

1 — 8 младших разрядов (этот флаг только для 8

 

Флаг паритета

младших разрядов операнда любого размера)

pf

(Parity Flag)

результата содержат четное число единиц;

 

 

0 — 8 младших разрядов результата содержат

 

 

нечетное число единиц

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

 

 

Только для команд работающих с BCD–числами.

 

 

Фиксирует факт заема из младшей тетрады

 

 

результата:

 

Вспомогательный флаг переноса

1 — в результате операции сложения был

af

произведен перенос из разряда 3 в старший

 

(Auxiliary carry Flag)

разряд или при вычитании был заем в разряд 3

 

 

 

 

младшей тетрады из значения в старшей тетраде;

 

 

0 — переносов и заемов в(из) 3 разряд(а)

 

 

младшей тетрады результата не было

zf

Флаг нуля

1 — результат нулевой;

(Zero Flag)

0 — результат ненулевой

 

 

 

Отражает состояние старшего бита результата

 

Флаг знака

(биты 7, 15 или 31 для 8, 16 или 32–разрядных

sf

операндов соответственно):

(Sign Flag)

 

1 — старший бит результата равен 1;

 

 

 

 

0 — старший бит результата равен 0

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

 

 

Предназначен для организации пошаговой работы

 

 

микропроцессора.

 

 

 

 

 

 

Флаг трассировки

1 — микропроцессор генерирует прерывание с номером 1

tf

после выполнения

каждой

машинной

команды. Может

(Trace Flag)

 

использоваться при отладке программ, в частности

 

 

 

 

отладчиками;

 

 

 

 

 

 

 

 

0 — обычная работа

 

 

 

 

 

 

 

Предназначен

для

разрешения

или

запрещения

 

Флаг прерывания

(маскирования)

аппаратных

прерываний (прерываний по

if

входу INTR).

 

 

 

 

 

 

(Interrupt enable Flag)

 

 

 

 

 

 

 

 

1 — аппаратные прерывания разрешены;

 

 

 

 

0 — аппаратные прерывания запрещены

 

 

 

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

Значение флага

df

определяет направление

поэлементной

df

обработки в операциях обработки строк: от начала строки к

(Direction Flag)

 

концу (df = 0) либо от конца строки к ее началу (df = 1)

 

 

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

 

 

Используется для фиксирования факта потери

 

 

значащего бита при арифметических операциях:

 

 

1 — в результате операции происходит перенос

 

Флаг переполнения

(заем) в(из) старшего, знакового бита результата

of

(биты 7, 15 или 31 для 8, 16 или 32–разрядных

(Overflow Flag)

 

операндов соответственно);

 

 

 

 

 

 

0 — в результате операции не происходит

 

 

переноса (заема) в(из) старшего, знакового бита

 

 

результата

 

 

 

 

 

Используется в защищенном режиме работы

iopl

Уровень привилегий ввода–вывода микропроцессора

для

контроля доступа

к

 

(Input/Output Privilege Level)

командам ввода–вывода

в зависимости

от

 

 

привилегированности задачи

 

 

Флажок вложенности задачи

Используется в

защищенном режиме работы

nt

микропроцессора для фиксации того факта, что

(Nested Task)

 

одна задача вложена в другую

 

 

 

 

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

rf

Флаг возобновления

Используется при обработке прерываний от регистров

(Resume Flag)

отладки.

 

 

 

Признак работы микропроцессора в режиме

 

Флаг виртуального режима

виртуального 8086.

vm

процессора 8086

1 — процессор работает в режиме виртуального 8086;

 

(Virtual 8086 Mode)

0 — процессор работает в реальном или защищенном

 

 

режиме

 

 

Предназначен для разрешения контроля выравнивания

 

 

при обращениях к памяти. Используется совместно с

 

 

битом am в системном регистре cr0. К примеру,

ac

Флаг контроля выравнивания

Pentium разрешает размещать команды и данные с

(Alignment Check)

любого адреса. Если требуется контролировать

 

выравнивание данных и команд по адресам кратным 2

 

 

 

 

или 4, то установка данных битов приведет к тому, что

 

 

все обращения по некратным адресам будут

 

 

возбуждать исключительную ситуацию

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

 

 

Появился в процессоре Pentium, при

 

Флаг виртуального прерывания

определенных условиях (одно из которых —

vif

(Virtual Interrupt Flag)

работа процессора в v–режиме) является

 

 

аналогом флага IF. Флаг VIF используется

 

 

совместно с флагом VI Р.

 

 

 

Флаг отложенного виртуального

Появился

в

 

процессоре

Pentium,

vip

прерывания

устанавливается

в

1

для

индикации

(Virtual Interrupt Pending flag)

отложенного

прерывания.

Используется при

 

 

 

работе в v–режиме совместно с флагом vif.

 

 

Используется для того, чтобы показать факт

 

 

поддержки

 

процессором

инструкции

 

Флаг идентификации

получения информации о текущем процессоре.

id

(identification flag)

Если программа может установить или

 

 

 

сбросить этот флаг, это означает, что данная

 

 

модель процессора поддерживает инструкцию

 

 

получения информации о текущем процессоре