Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
15.04.2015
Размер:
1.15 Mб
Скачать
  1. Пользовательские регистры

  1. Регистры общего назначения

EAX/AX/AH/AL – аккумулятор, применяется для хранения промежуточных данных.

31 15 0

ЕАХ

АХ

АН

АL

EBX/BX/BH/BL – базовый регистр, применяется для хранения некоторого базового адреса.

ECX/CX/CH/CL – регистр – счетчик, используется при организации циклов.

EDX/DX/DH/DL – регистр данных, хранит промежуточные данные при выполнении операции умножения и может применяться при адресации,

EBP/BP -- регистр используется для работы со стеком, предназначен для организации произвольного доступа к данным внутри стека.

ESP/SP – регистр указателя стека, содержит указатель вершины стека в текущем сегменте стека

При записи в стек содержимое SP уменьшается, а при чтении - увеличивается.

Стек

SP

BP

ESI/SI – индексный регистр, предназначен для адресации в цепочечных операциях операндов – источников.

EDI/DI – индексный регистр, предназначен для адресации в цепочных операциях операндов-приемников.

  1. Сегментные регистры

CS, DS, SS – основные ,

ES, FS, GS – дополнительные.

Оперативная память:

ES

PSPCS

Код

ДанныеDS

SS Стек

Часть этих регистров инициализируется автоматически, а другие - должны быть инициализированы программой. Программист должен позаботиться о том, чтобы регистр DS, например, указывал на начало области данных.

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

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

Регистр флагов

EFLAGS/FLAGS

31..19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

AC VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF

CF – флаг переноса. Арифметическая операция произвела перенос из старшего бита (есть перенос – 1, нет – 0).

PF – флаг паритета. Проверка четности количества единиц в младшем байте. Если четное количество единиц – записывается 1, если нечетное - 0.

AF – вспомогательный флаг переноса, который используется в операциях с BCD – числами.

ZF – флаг нуля. Если нулевой результат операции, то здесь записывается 1, в противном случае – 0.

SF – флаг знака. Отражает состояние старшего бита результата (7, 15, 31, 63 и т.д. – старшие биты).

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

IOPL – два соседних разряда (12 и 13) – уровень привилегий ввода/вывода. Используется в защищенном режиме для контроля доступа к командам ввода/вывода в зависимости от привилегированности задачи.

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

TF – флаг трассировки, предназначен для пошагового выполнения работы микропроцессора.

IF – флаг разрешения прерываний (1- аппаратные прерывания разрешены, 0 – запрещены).

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

VM – флаг виртуального МП 8086 (1- процессор работает в режиме виртуального МП 8086, 0 – процессор работает в защищенном или реальном режиме).

AC – флаг выравнивания.

DF – флаг управления при использовании цепочных команд (0 - направления от начала к концу (возрастание адресов), 1 – строка обрабатывается по убыванию (от конца к началу строки)).

Существует 2 команды: STD – установить флаг DF, CLD – сбросить флаг DF.

IP – счетчик команд.

  1. Регистры защищенного режима:

TR, LDTR, GDTR, IDTR