Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_Lektsii_2015.doc
Скачиваний:
105
Добавлен:
22.03.2016
Размер:
1.19 Mб
Скачать

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

РОН можно использовать в любых арифметических и логических машинных операциях.

К этой группе относятся:

AX - регистр-аккумулятор (применяется для хранения промежуточных данных, в некоторых командах его использование обязательно);

BX - базовый регистр (применяется для хранения базового адреса некоторого объекта в памяти);

CX - регистр-счетчик (применяется в командах, производящих некоторые повторяющиеся действия);

DX - регистр данных (так же как и регистр АХ, хранит промежуточные данные). В некоторых командах его явное использование обязательно, в других он используется неявно.

Регистры AX, BX, CX и DX устроены так, что возможен независимый доступ к их старшей H (high) и младшей L (low) половинам. Целиком регистр используется при работе с числами, а его половины – при работе с частями чисел или символами.

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

Вторую группу регистров образуют следующие 4 регистра: CS, DS, SS, ES, служащих для доступа к четырем типам сегментов.

  • Сегмент кода содержит команды программы. Для доступа к этому сегменту служит регистр сегмента кода (Code Segment register) CS. Он содержит адрес сегмента с машинными командами, к которому имеет доступ процессор.

  • Сегмент данных содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр сегмента данных (Data Segment register) DS, который хранит адрес сегмента данных текущей программы.

  • Сегмент стека представляет собой область памяти, называемую стеком. Для доступа к этой области служит регистр сегмента стека (Stack Segment register) SS, содержащий адрес сегмента стека.

  • Дополнительный сегмент данных. Если программе недостаточно одного сегмента данных, то она имеет возможность задействовать дополнительный сегмент данных. Адрес дополнительного сегмента данных должен содержаться в регистре дополнительного сегмента данных ES.

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

Регистры смещений

Регистры смещений используются для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов):

  • регистр IPхранит смещение адреса текущей команды программы;

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

  • регистр SPуказывает на вершину стека – смещение относительно начала стека;

  • регистры SIиDIпредназначены для хранения адресов индексов источника и приемника данных при операциях над строками и другими структурами данных.

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

Регистр Flags – это регистр состояния процессора. Из его 16 разрядов используются только 9. Флаг – это бит, принимающий значение 1 («флаг установлен»), если выполнено некоторое условие, и значение 0 («флаг сброшен») в противном случае. Каждый флаг – это один из разрядов данного регистра. Некоторые разряды регистра не используются.

Флаги условий:

CF (carry flag) – флаг переноса при арифметических операциях.

OF (overflow flag) – флаг переполнения в арифметических операциях.

ZF (zero flag) – флаг нуля (нулевого результата).

SF (sign flag) – флаг знака.

PF (parity flag) – флаг четности результата.

AF (auxiliary carry flag) – флаг дополнительного переноса.

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

DF (direction flag) – флаг направления. Устанавливает направление просмотра строк в строковых командах.

IF (interrupt flag) – флаг прерываний.

TF (trap flag) – флаг трассировки. Используется при отладке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]