Регистровая модель МП I8086/88. Назначение регистров
I8086- содержит 14 регистров.
1.РОН- регистр общего назначения.
ah
Al
Ax
bh
Bl
Bx
ch
Cl
Cx
dh
Dl
Dx
Допускается обращение программно отдельно к младшему и старшему байту РОН через соответствующие имена:
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-регистр дополнительного сегмента данных.
5. Флаговый регистр(16)
FLAGS – хранит состояние процессора и управляет его работой.
Регистр флагов МП I8086/88. Назначение регистра, флаги состояние, флаги управления
Регистр флагов содержит слово состояние программы, имеет 9 значащих битов (флаги), одни из которых:
флаги состояния (результат выполнения предыдущей программы), флаги управления (управляют работой МП). Формат:
*
*
*
*
O
D
I
T
S
Z
*
A
*
P
*
C
* - неиспользуемые биты.
Флаги состояния: CF,PF,AF,ZF,SF,OF
CF - флаг переноса. Содержит значение переноса из старшего разряда в арифметических командах (CF=1- был перенос из младшего байта в старший, CF=0 -нет)
(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 -было)
Принцип адресации памяти МП i8086: размер адресного пространства, понятие сегмента, понятие логического и физического адреса.
МП i8086 использует сегментную организацию памяти, каждый байт памяти адресуется двумя значениями:**** ****- 1.область памяти(сегмент),2.смещение нужного байта относительно начала сегмента.
Сегмент – логическая единица памяти размеров от 0 до 64 кбайт.
Адресное пространство МП поделено на параграфы 16b. Сегмент содержит от 0 до 4096 смежных параграфов, он всегда начинается на границе параграфа, т.о.адрес сегмента кратен 16, поэтому адресный семент. можно задать через номер начального пар-фа. Это значение называется базовым адресом
сегмента.
Шина адреса МП имеет 20 разрядов, т.е. через нее адресуется до 1Mb адресного пространства. На шину адреса выставляется физический адрес операнда.
Физический адрес – 20-разрядное число в диапазоне 00000-FFFFF, которое однозначно идентифицирует положение каждого байта в пространстве памяти.
БАС(базовый адрес сегмента) *16(аппаратное умножение)+ смещение.