Слайд 2Программно-доступные регистры 32-разрядного процессора х386
Регистры общего назначения
8-разрядные: AH, AL, BH, BL, CH,

CL, DH, DL
16-разрядные: AX, BX, CX, DX, SP, BP, DI, SI
32-разрядные: EAX, EBX, ECX, EDX, ESP, EBP, EDI, ESI
Слайд 3
Регистры- указатели сегментов памяти
16- разрядные регистры: CS, DS, ES, SS,

FS, GS
CS – указатель на сегмент с командами
остальные – указатели на сегменты с данными
Регистр- указатель команд
16-разрядный IP /32-разрядный EIP
Слайд 4
Регистр флагов
Арифметические флаги: CF, АF, ZF, PF, SF и ОF
устанавливаются

процессором в 0 или 1 после выполнения каждой арифметической команды.
По состоянию арифметических флагов можно судить о свойствах полученного результата.
Флаги программно доступны!
Слайд 5Арифметические флаги
CF (Carry Flag) - флаг переноса /заема
СF=1 после сложения, если

был перенос за формат результата
СF=1 после вычитания, если был заем из-за предела формата данных («из воздуха»)
Примеры: после сложения /вычитания байтов
F0 11
+ 11 - F0
01 21
CF=1 (был перенос) CF=1 (был заем)
Слайд 6
АF (Auxilary Flag) - флаг вспомогательного переноса /заема
АF=1 после

сложения, если был перенос из младшей тетрады младшего байта результата,
АF=1 после вычитания, если был заем из старшей тетрады младшего байта
Примеры:
1C 782А
+ 2E - 530В
4A 251F
AF=1 AF=1
Слайд 7
ZF (Zero Flag) - флаг нуля
ZF=1 при получении нулевого

результата
Примеры:
F0 10
+ 11 + F0
01 00
ZF=0 ZF=1
Слайд 8
PF (Parity Flag) - флаг четности
РF= 1, если младший байт

результата содержит четное число двоичных единиц или все нули
Примеры:
F0 11
+ 11 - F0
01 (bin:00000001) 21 (bin: 00100001)
РF= 0 РF= 1
Слайд 9
SF (Sign Flag) - флаг знака
SF повторяет значение старшего бита

результата (знаковый разряд для знаковых чисел)
Примеры:
9C 782А
+ 2E - 530В
СA (1100 1010) 251F (0010 0101 0001 1111)
SF=1 SF=0
Слайд 10
ОF (Overflow Flag) - флаг переполнения
ОF= 1 указывает на некорректное

значение знакового бита результата после операции над знаковыми числами.
Это происходит, когда результат не поместился в используемый формат знаковых данных. Следовательно, надо увеличить формат данных
Пример: сложение знаковых чисел
а) однобайтный формат б) расширим до 2-байтных
7F ( +127) 007F ( +127)
+ 04 ( + 4 ) + 0004 ( + 4)
83 ( - 125 ) 0083 ( + 131)
ОF = 1 ОF = 0
Слайд 11Управляющие флаги DF, IF и TF
Влияют на работу процессора. Программно доступны.

IF (Interrupt Flag) - флаг внешних прерываний процессора: 0 – прерывания будут запрещены, 1 - разрешены
TF (Trace Flag) - флаг трассировки. ТF=1
переводит процессор в пошаговый режим исполнения команд.
DF (Direct Flag) – флаг «направления» для исполнения строковых команд
Слайд 12Форматы целочисленных данных 32-разрядного процессора
