Содержание

Программная модель процессора x86_64

Программная модель процессора 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 получает набор ресурсов для выполнения инструкций, а также для хранения кода, данных и информации о состоянии. Эти ресурсы составляют базовую среду выполнения для процессора x86.

Процессоры Intel 64 и amd64 поддерживают базовую среду выполнения процессора, которая может выполнять 64-битные программы (длинный режим) и 32-битные программы (режим совместимости). Базовая среда выполнения используется совместно прикладными программами и операционной системой или исполнительной системой, работающей на процессоре.

|
Базовая среда выполнения x86 без поддержки 64-режима.

В дополнение к ресурсам, предоставляемым в базовой среде выполнения, архитектура IA-32 предоставляет следующие ресурсы как часть архитектуры системного уровня. Они обеспечивают обширную поддержку операционной системы и программного обеспечения для разработки систем.

Базовая среда выполнения в режиме x64

Среда выполнения для 64-битного режима аналогична 32-битному с несколькими отличиями:

|
Базовая среда выполнения x86-64 в 64-битном режиме.