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

1. Регистровая модель мп i8086/88. Назначение регистров

Описывает устройство МП с точки зрения программы.

I8086- содержит 14 программно доступных регистров.

aah

AAl

AAx

bbh

BBl

ABx

cch

CCl

CCx

ddh

DDl

DDx

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

Допускается обращение программно отдельно к младшему и старшему байту РОН через соответствующие имена

Ax - основной сумматор, используется в арифм/ командах, хранение промежуточных данных и результата.(mov Ax,1)

Bxбазовый регистр, в арифметических командах и (единственный из РОН) для представления адресов mov[Bx],1

Cx- регистр-счетчик, для управления циклами и в арифметических операциях.

Dx- регистр данных, в арифметических операциях, в паре с Ax для представления больших чисел Dx:Ax

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

SP-указатель стека, хранит адрес вершины стека.

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

IP-указатель(счетчик) команд, содержит адрес, исполняемой инструкции.

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

SI- индекс источника, DI- индекс приемника.

Данные регистры используются командами для адресации цепочек значений и автоматически

изменяются некоторыми командами при

пересылке данных.

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

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

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

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

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

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

3. Принцип адресации памяти мп i8086: размер адресного пространства, понятие сегмента,

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

М П i8086 использует сегментную организацию памяти, каждый байт памяти адресуется двумя значениями: область памяти (сегмент), смещение нужного байта относительно начала сегмента.

Сегмент – логическая единица памяти размеров от 0 до 64 кбайт.

Адресное пространство МП поделено на параграфы 16b. Сегмент содержит от 0 до 4096 смежных параграфов, он всегда начинается на границе параграфа, т.о.адрес сегмента кратен 16, поэтому адресный

семент. можно задать через номер начального пар-фа. Это значение называется базовым адресом сегмента.Шина адреса МП имеет 20 разрядов, т.е. через нее адресуется до 1Mb адресного пространства. На шину

адреса выставляется физический адрес операнда.Физический адрес – 20-разрядное число в диапазоне 00000-FFFFF, которое однозначно идентифицирует

положение каждого байта в пространстве памяти. БАС *16(аппаратное умножение)+ смещение.

2. Регистр флагов мп i8086/88. Назначение регистра, флаги состояние, флаги управления

Регистр флагов содержит словосостояние программы, имеет 9 значащих битов (флаги),одни из которых: флаги состояния (результат выполнения предыдущей программы), флаги управления (управляют работой МП). Формат:

****ODITSZ*A*P*C

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

CF - флаг переноса. Содержит значение переноса из старшего разряда в арифметических командах и

некоторых командах сдвига(CF=1- был

перенос из младшего байта в старший, CF=0 -нет)

PF -флаг четности, проверяет младшие 8b результата на число установленных битов

(PF=1 если младший байт содержит четное число битов, PF=0 если число бит нечетное)

AF - флаг вспомогательного переноса (AF=1 если перенос из младшей тетрады 4b, AF=0 нет), используется в операциях над двоично-десятичными числами.

ZF - флаг нуля (ZF=1нулевой результат, ZF=0- ненулевой)

SF - флаг знака (SF=1 имеет знак «-» (старший бит равен 1), SF=0)Флаги управления:

TF - флаг трассировки (TF=1 процессор переходит в режим пошагового выполнения про- граммы, т.е.

осле команды происходит прерывание работы процессора и выводятся содержимое внутренних

устройств МП )

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

DF - флаг направления (DF=0- обработка цепочек значений осуществляется в направлении возрастания

адресов, DF=1 в сторону убывания ), в

зависимости от DF содержимое регистров SI, DI либо автоматически увеличивается, либо уменьшается.

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