Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie.doc
Скачиваний:
143
Добавлен:
09.04.2015
Размер:
969.22 Кб
Скачать

Микропроцессорная память (мпп)

МПП реализована в виде регистров. Число и размерность регистров зависит от модели МП. В базовом МП 8088 - 14 двухбайтовых регистров. У старших моделей число и размерность регистров значительно больше. У МП 80386 и выше – есть 4-хбайтовые, у Pentium – 8-мибайтовые регистры. Но в качестве базовой модели, а также для программирования на языке Ассемблера и отладчика используется 14-регистровая система МПП.

AX

AH

AL

CS

IP

BX

BH

BL

DS

BP

CX

CH

CL

SS

SP

DX

DH

DL

ES

SI

DI

F

Регистры МПП

Все регистры можно разделить на 4 группы:

Регистры общего назначения: AX, BX, CX, DX

Сегментные регистры: CS,DS, SS, ES

Регистры смещения: IP, SP, BP, SI, DI

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

Если регистры в модели 4-х или 8-мибайтовые, то их имена изменяются (например, AX, BX, CX, DX называются ЕAX, ЕBX, ЕCX, ЕDX), но если используютя их однобайтовая или двухбайтовая часть, то применяется их базовое название.

РОН Сегментные регистры Регистры смещения

AX AH AL CS IP

BX BH BL DS BP

CX CH CL SS SP

DX DH DL ES SI

DI

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

FL

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

Это универсальные регистры, могут использоваться для временного хранения любых данных, а также как зарезервированные для некоторых команд. С этими регистрами можно работать как с двухбайтными, а также по отдельности с их старшими (AH, BH, CH, DH) или младшими (AL, BL, CL, DL) байтами. Примеры специального использования:

Регистр AХ – аккумулятор, через него производится ввод-вывод данных в МП, а в операциях умножения и деления он по умолчанию используется в качестве регистра1.

Регистр BХ обычно используется для хранения базового адреса в сегменте данных или начального адреса поля при работе с массивами.

Регистр CX счётчик числа повторений при циклических операциях.

Регистр DX используется как расширение для AХ при работе с 32-разрядными числами и в операциях умножения и деления.

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

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

CS – сегмента кода программы

DS – сегмента данных

SS – сегмента стека

ES – расширенного сегмента – дополнительной области памяти при межсегментных пересылках, т.к. размер сегмента в реальном режиме работы МП не более 64Кбайт.

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

Хранят относительные адреса ячеек памяти внутри сегментов – смещения

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

SP – смещение вершины стека (текущего адреса стека)

BP – смещение начального адреса поля памяти, отведённого под стек

SI, DI – хранят адреса индексов источника и приемника данных в строковых операциях.

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

Содержит битовые признаки (флаги), определяющие ход выполнения программы. Всего 9 флагов, 6 из них статусные, отражают результат выполнения операции, а 3 – управляющие, непосредственно определяют режим выполнения программы. Флаги независимы друг от друга.

OF DF IF TF

15 14 13 12 11 10 9 8

SF ZF AF PF CF

7 6 5 4 3 2 1 0

Статусные флаги:

CF – флаг переноса. Фиксирует наличие переноса (1 или 0) из старшего разряда при арифметических операциях и сдвигах.

PF – флаг чётности. Проверяет чётность (1) восьми младших битов результата операции (число единиц в младшем байте результата)

AF – флаг логического (вспомогательного) переноса в двоично-десятичной арифметике. Устанавливается в 1, если происходит перенос или заём четвёртого справа бита однобайтового операнда.

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

SF – флаг знака. Значение зависит от результата арифметической операции: при положительном – 0, отрицательном - 1.

OF – флаг переполнения. Устанавливается при арифметическом переполнении: если при выполнении арифметической операции со знаком есть перенос в знаковый разряд, если частное от деления переполняет регистр результата и т.д., то устанавливается в 1.

Управляющие флаги.

DF – флаг направления. Используется в строковых операциях для задания направления обработки данных. Если 0, то значения регистров SI/DI в каждой команде увеличивается на 1 – (обработка справа налево), если 0, то слева направо.

IF – флаг прерываний. При его значении 0 прерывания запрещены, при 1 разрешены

TF – флаг системного прерывания. 1 в этом флаге переводит ЦП в режим пошаговой работы.

.

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