logo
Методичка

9.3 Архитектура x86-64

Архитектура x86-64 с одной стороны совместима с 32-разрядной архитектурой x86, с другой стороны – является 64-разрядной. Согласно кросслицензионному соглашению архитектуру x86-64 развивают и поддерживают корпорации AMD (технология AMD-64) и Intel (технология EM64T).

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

Например, 64-разрядные процессоры семейства Hammer, разработанные фирмой AMD, базируются на архитектуре x86-64, которая является расширением IA-32.

На рисунке 9.2. приведён набор регистров МП AMD. Прежние 32-разрядные регистры, расширенные до 64-бит, получили имена RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, RIP и RFLAGS. Новые регистры остались безымянными и просто пронумерованы от R8 до R15. Для обращения к младшим 8-, 16- и 32-битам новых 64-разрядных регистров можно использовать постфиксы b, w и d соответственно (byte, word, dword). Например, R9 – это 64-разряный регистр, R9b – его младший байт (по аналогии с AL), а R9w – младшее слово (то же самое, что AX в EAX). Прямых наследников AH, к сожалению, не наблюдается и для манипуляции со средней частью регистров приходится использовать сдвиги.

В блок SSE в дополнение к восьми 128 разрядным регистрам XMM0-XMM7, введены восемь новых регистров XMM8-XMM15, что обеспечивает поддержку SSE2 путём увеличения количества SIMD команд.

Регистр-указатель команд RIP теперь адресуется точно так же, как и все остальные регистры общего назначения. Однако это не является новинкой. Ещё в PDP-11 (или в её отечественном клоне "Электроника БК" или "УКНЦ") указатель команд был программно доступен.

В таблице 9.2 указаны режимы работы микропроцессоров AMD-64. В режиме совместимости с прежней архитектурой x86 (Legacy Mode) ни 64-битные регистры, ни новые методы адресации недоступны. Однако можно выполнять программы в защищённом, виртуальном и реальном режимах.

Для доступа к 64-битным регистрам и выполнения 64-битных приложений необходимо перевести процессор в "длинный" режим (long mode), который делится на два подрежима: подрежим совместимости с x86 (compatibility mode) и 64-битный подрежим (64-bit mode). Подрежим совместимости предусмотрен только для того, чтобы 64-разрядная операционная система могла выполнять старые 32-битные приложения.

Таблица 9.2. Режимы работы микропроцессоров AMD-64.

Режим работы

Требуемая операционная система

Требуется перекомпиляция приложений

Разрядность

Регистровые расширения

Используемые разряды РОНов

адреса

данных

Режим

Long

64-битный подрежим

64-битная ОС

Да

64

32

Да

64

Подрежим совместимости

Нет

32

Нет

32

16

16

16

Режим Legacy

Защищённый режим

32-битная ОС

Нет

32

32

Нет

32

16

16

Виртуальный режим

16-битная ОС

16

16

16

Реальный режим