Процессоры семейства х86. Регистры. Форматы данных. (Лекция 3)

Содержание

Слайд 2

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

Программно-доступные регистры 32-разрядного процессора х386 Регистры общего назначения 8-разрядные: AH, AL, BH,
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,

Регистры- указатели сегментов памяти 16- разрядные регистры: CS, DS, ES, SS, FS,
FS, GS
CS – указатель на сегмент с командами
остальные – указатели на сегменты с данными
Регистр- указатель команд
16-разрядный IP /32-разрядный EIP

Слайд 4


Регистр флагов
Арифметические флаги: CF, АF, ZF, PF, SF и ОF
устанавливаются

Регистр флагов Арифметические флаги: CF, АF, ZF, PF, SF и ОF устанавливаются
процессором в 0 или 1 после выполнения каждой арифметической команды.
По состоянию арифметических флагов можно судить о свойствах полученного результата.
Флаги программно доступны!

Слайд 5

Арифметические флаги

CF (Carry Flag) - флаг переноса /заема
СF=1 после сложения, если

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

Слайд 6


АF (Auxilary Flag) - флаг вспомогательного переноса /заема
АF=1 после

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

Слайд 7


ZF (Zero Flag) - флаг нуля
ZF=1 при получении нулевого

ZF (Zero Flag) - флаг нуля ZF=1 при получении нулевого результата Примеры:
результата
Примеры:
F0 10
+ 11 + F0
01 00
ZF=0 ZF=1

Слайд 8


PF (Parity Flag) - флаг четности
РF= 1, если младший байт

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

Слайд 9


SF (Sign Flag) - флаг знака
SF повторяет значение старшего бита

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 указывает на некорректное

О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

Влияют на работу процессора. Программно доступны.

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

Слайд 12

Форматы целочисленных данных 32-разрядного процессора


Форматы целочисленных данных 32-разрядного процессора