Программная модель процессора x86-64 с точки зрения ассемблера описывает, как процессор выполняет инструкции, а также как он хранит и манипулирует данными. Среда выполнения включает в себя память (адресное пространство), регистры общего назначения, сегментные регистры, регистр флагов и регистр указателя команд.
Архитектура x86-64 имеет два основных режима работы: Длинный режим (Long Mode) и устаревший режим (Legacy Mode).
| Состояние | Требуется операционная система | Тип выполняе- мого кода | Размер (биты) | Кол-во регистров GPR |
||
|---|---|---|---|---|---|---|
| режим | под- режим | адреса | операнды (по умол- чанию выделен) |
|||
| Длинный режим (Long Mode) | 64-битный режим (64-bit mode) | 64-разрядная ОС, 64-разрядная прошивка UEFI | 64-бит | 64 | 8, 16, 32, 64 | 16 |
| Режим совместимости (Compatibility mode) | Загрузчик или 64-битная ОС | 32-битный защищенный режим | 32 | 8, 16, 32 | 8 | |
| 16-битный защищенный режим | 16 | 8, 16, 32 | 8 | |||
| Унаследо- ванный режим (Legacy mode) | Защищенный режим (Protected mode) | Загрузчик, 32-битная ОС или 32-разрядная прошивка UEFI | 32-битный защищенный режим | 32 | 8, 16, 32 | 8 |
| 16-битная ОС в защищенном режиме | 16-битный защищенный режим | 16 | 8, 16, 321 | 8 | ||
| Режим виртуального 8086 (Virtual 8086 mode) | 16-битная ОС в защищенном режиме или 32-битная ОС | 16-битный защищенный режим | подмно- жество реального режима | 8, 16, 321 | 8 | |
| Нереальный режим (Unreal mode) | Загрузчик или ОС в реальном режиме | реальный режим | 16, 20, 32 | 8, 16, 321 | 8 | |
| Реальный режим (Real mode) | Загрузчик, ОС реального режима или любая ОС, взаимодействующая с интерфейсом BIOS | реальный режим | 16, 20, 21 | 8, 16, 321 | 8 | |
Обратите внимание, что 16-битный код, написанный для 80286 и ниже, не использует 32-битные инструкции операнда. Код, написанный для 80386 и более поздних версий, может использовать префикс переопределения размера операнда (0x66). Обычно этот префикс используется кодом защищенного и длинного режима с целью использования 16-битных операндов, поскольку этот код будет выполняться в сегменте кода с размером операнда по умолчанию, равным 32 битам. В реальном режиме размер операнда по умолчанию составляет 16 бит, поэтому префикс 0x66 интерпретируется иначе, изменяя размер операнда на 32 бита.
Архитектура x86-64 поддерживает три основных режима работы: защищенный, реальный и системного управления. Режим работы определяет какие инструкции и архитектурные функции доступны:
Любая программа или задача, работающая на процессоре x86 получает набор ресурсов для выполнения инструкций, а также для хранения кода, данных и информации о состоянии. Эти ресурсы составляют базовую среду выполнения для процессора x86.
Процессоры Intel 64 и amd64 поддерживают базовую среду выполнения процессора, которая может выполнять 64-битные программы (длинный режим) и 32-битные программы (режим совместимости). Базовая среда выполнения используется совместно прикладными программами и операционной системой или исполнительной системой, работающей на процессоре.
В дополнение к ресурсам, предоставляемым в базовой среде выполнения, архитектура IA-32 предоставляет следующие ресурсы как часть архитектуры системного уровня. Они обеспечивают обширную поддержку операционной системы и программного обеспечения для разработки систем.
Среда выполнения для 64-битного режима аналогична 32-битному с несколькими отличиями: