Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распечатка.docx
Скачиваний:
3
Добавлен:
24.04.2019
Размер:
136.27 Кб
Скачать

2.Регистровая модель МП i8086. Назначение регистров.

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

ah Al Ax

bh Bl Bx

ch Cl Cx

dh Dl Dx

Ax - основной сумматор

Bx – базовый регистр

Cx- регистр-счетчик

Dx- регистр данных

2.Регистры указатели(16 разрядные)

SP-указатель стека

BP-указатель базы

IP-указатель(счетчик) команд

3. Индексные регистры(16)

SI- индекс источника

DI- индекс приемника.

4. Сегментные регистры(16)

CS - адресует код программы,

DS - адресует данные, которыми пользуется программа,

SS- адресует программный стек,

ES-регистр дополнительного сегмента данных.

3. Регистр флагов МП i8086. Назначение регистра, флаги состояния, флаги управления

Регистр флагов содержит словосостояние программы, имеет 9 значащих битов (флаги),одни из которых:

флаги состояния, флаги управления

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

CF - флаг переноса.

PF -флаг четности.

AF - флаг вспомогательного переноса.

ZF - флаг нуля

SF - флаг знака

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

TF - флаг трассировки

IF - флаг прерывания

DF - флаг направления

OF - флаг переполнения.

4.Принцип адресации памяти МП i8086: размер адресного пространства, понятие сегмента, понятие логического и физического адреса.

Адресное пространство мп допустимое количество ячеек памяти к кот. мп может обратиться по шине-адресу. Каждая ячейка имеет свой номер (адрес) 20 бит-ША. т.к.внутри регистры Мп имеют разрядность 16 бит и впрямую могут адресовать только 64Кб для расширения адресного пространства был введён механизм сегментации памяти. Всё адресное пространство делиться на параграфы =16 байт. Несколько смежных параграфов образуют сегмент. Размер сегмента в параграфах от 0 до 4096 параграфов.Адрес сегмента определяеться 1-параграф - это значение наз. адресом сегмента и храниться в сегментном регистре. Каж. байт памяти имеет логический адрес кот. состоит из 2-х компонент. ХХХХ:хххх - вид лог. адреса байта. ХХХХ-базовый адрес сегмента, хххх-смещение байта внутри сегмента. Для получения физ. адреса сегмента адрес * на 16 + значение смещения получаем 20 разр. адрес.

5. Логические сегменты программы. Адресация сегментов

4 Типа сегментов:

Сегмент кода – в нем находятся машинные инструкции,

кот. составляют текст программы;

Сегмент данных – хранит определенные в программе

константы и переменные;

Сегмент стека – хранит промежуточные данные, а также

адреса возврата из подпрограммы в точку вызова;

Сегмент дополнительных данных – используется для

размещения динамически определяемых переменных

Логические сегменты задаются программистом, так же

как порядок расположения их памяти.

6.Сегмент стека. Адресация стека, команды работы со стеком, изменение состояния стека.

Стек задается программно или определяется системно.

SS-содержит базовый адрес текущего сегмента стека

SP указывает на вершину стека

PUSH- заносим в стек

POP- достаем из стека.

Стек растет в область младших адресов, т.е. при выполнении команды PUSH значение регистра SP аппаратно уменьшается на 2. Помещать в стек и извлекать из него можно только 16-разрядные операнды. т.е. слова. Это значит, что двойное слово помещается и извлекает из стека в два приема, а для помещения в стек одного байта необходимо дополнять его до слова фиктивным байтом.

7.Режимы адресации мп i8086.

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

ЕА=смещение в указ. сегменте.

Операнды: регистры, непосредственные опернды, операнды памяти(в одной команде нельзя 2 операнда памяти).

I8086- 24режима адресации.

Режим----------------Формат операнда---Сегмент

Регистровый---------------Регистр----------------------

Непосредственный--данное(число)-------CS

Прямой--------------- Смещение(метка)-----DS

Косвенный------------- [BX],[DI],[SI],[BP]---------DS,SS

Базовый--------------- -[BX]+смещение

---------------------------- [BP]+смещение-------DS,SS

Прямой с инде-ем- -[DI]+ смещение------DS

-----------------------------[SI]+ смещение------DS

По базе с инде-ем- [BX],[SI]+смещение--DS

-----------------------------[BX],[DI]+смещение--DS

-----------------------------[BP][SI]+смещение---SS

-----------------------------[BP],[DI]+смещение—SS

9.Формат команд мп i8086

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

----------------------------------------------------------------------------------------------------------------

| Префиксы | Команда |

----------------------------------------------------------------------------------------------------------------

Повтор | Замена сегмента | Код операции | Пост байт | Смещение | Операнд

----------------------------------------------------------------------------------------------------------------

(0:1) | (0:1) | (1) | (0:1) | (0:2) | (0:2) |

----------------------------------------------------------------------------------------------------------------

Префикс повторения- определяет кол-во повторений команды при автомат. обработке цепочек.

Префикс замены сегмента- явно определяет сегментный регистр для конкретной команды.

0 0 1 REG 1 1 0

REG=00:ES,01:CS,10:SS,11:DS

mov AX,[BX]- mov ES:[BX]

Код операции- определяет какая операция выполняется, кроме кода опер-ии содержит служебные виды. Расширение кода опер-ии может находиться во втором байте команды.

Постбайт- байт режима адресации, определяет виды и тип операндов.

Mod(2) Reg(3) r/m(2)

Значение reg,r/m задают регистры или в комбинации с mod обращение к памяти.

Смещение- 8:16 разрядный, если команде задано смещение mov AX,[BX+2]. В команде указывается младший байт, а затем старший байт смещения.

Непосредственный операнд- содержится в коде команды ,м/б 1-2 байтовым.