
Встроенные микропроцессорные системы / ВстроенныеСистемы / x86arh
.docАрхитектура x86
x86 (Intel 80x86) — это общее название семейства микропроцессоров, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей
Другое название для архитектуры этого типа — IA (Intel Architecture) или же IA-32.
Архитектура x86 является архитектурой Фон Неймана с командами загрузки/сохранения, разработанной для 32-разрядного конвейерного микропроцессора общего назначения.
CPU имеет семь режимов работы.
Пользовательский режим (User – usr) – нормальное состояние выполнения команд.
Запрос быстрого прерывания (FIQ) – разработан для поддержки передачи данных на канальном уровне.
Запрос прерывания (IRQ) – используется для обработки прерываний общего назначения.
Супервизорный режим (Supervisor- svc) – защищенный режим для операционной системы.
Режим прекращения (Abort – abt) – переход в это состояние выполняется после прекращения выборки команды или данных.
Системный режим (System – sys) – привилегированный пользовательский режим для операционной системы.
Неопределенный режим (Undefined – und) - переход в это состояние выполняется после выполнения несуществующей команды.
1.1. Программная модель
1.1.1. Регистры
Четыре 32-разрядных регистра общего назначения c индивидуальными особенностями:
EAX – основной арифметический регистр;
EBX – индексный регистр;
ECX – счетчик циклов;
EDX – регистр данных в паре с EAX участвует в целочисленных операциях умножения и делении.
Следующие три регистра также являются регистрами общего назначения, но с большей степенью детализации:
ESI – указатель на входную цепочку символов;
EDI – указатель на выходную цепочку символов;
EBP – указатель базы кадра локальных переменных.
ESP – указатель стека.
16-ти разрядные регистры сегментов – элементы архитектуры процессора 8086, используемые для обращения к адресному пространству в 1Мбайт, разделенному на сегменты по 64 Кбайт с помощью 16-ти разрядных адресов памяти:
CS – регистр сегмента кода
SS – регистр сегмента стека
DS – регистр сегмента данных
ES, FS, GS –добавочные регистры сегментов данных
Регистр системных флагов
CF - флаг переноса (Carry Flag).
PF - флаг четности (Parity Flag).
AF - флаг вспомогательного переноса (Adjust Flag).
ZF - флаг нуля (Zero Flag).
SF - флаг знака (Sign Flag).
OF - флаг переполнения (Overflow Flag).
-------------------------
DF - флаг направления (Direction Flag)
TF - флаг ловушки (Trap Flag).
IF - флаг разрешения прерываний (Interrupt enable Flag).
IOPL - уровень привилегий ввода-вывода (I/O Privilege Level field, 286+)
NT - флаг вложенной задачи (Nested Task flag, 286+).
RF - флаг возобновления (Resume Flag, 386+).
VM - режим виртуального МП 8086 (Virtual-8086 Mode flag, 386+).
AC - флаг контроля выравнивания (Alignment Check flag, 486+).
VIF - виртуальный флаг прерывания (Virtual Interrupt Flag, Pentium+).
VIP - виртуальный флаг задержки прерывания (Virtual Interrupt Pending flag, Pentium+).
ID - флаг поддержки CPUID (Identification flag, Pentium+).
Регистры управления сегментированной памятью
Регистр глобальной дескрипторной таблицы (GDTR).
Регистр локальной дескрипторной таблицы (LDTR).
Регистр таблицы дескрипторов прерываний (IDTR).
Регистр задачи (TR).
Регистры управления
Регистры отладки DR0-DR3, DR6, DR7
1.1.2. Типы данных
Доступ к памяти происходит по «словам». «Слова» размещаются по принципу Littel Endian.
1.2. Множество команд.
Множество команд базируется на CISC архитектуре. Современные процессоры включают в себя декодеры команд x86 для преобразования их в упрощённый внутренний формат с последующим их выполнением, тем самым они являются RISC и CISC одновременно.
cmp al,17 Сравнить imm8 и регистра AL
cmp ax,0AABh Сравнить imm16 и регистра AX
http://www.in-nov.ru/SerSG/hardware/prof/index_.htm