Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
V_ostavsheysya_chasti_etoy_glavy_opisyvaetsya_organizatsia_pamyati_i_adresnogo_prostranstva.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
44.3 Кб
Скачать

3.7.5.1 Определение смещения в 64-битном режиме

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

• Смещение - 8-битное, 16-битное или 32-битное значение.

• Base - значение в 64-битном регистре общего назначения.

• Index - значение в 64-битном регистре общего назначения.

• Масштабный коэффициент - значение 2, 4 или 8, умноженное на значение индекса.

Значение базы и индекса может быть указано в одном из шестнадцати доступных регистров общего назначения в большинстве случаев. См. Главу 2 «Формат инструкции» в Руководстве разработчика программного обеспечения Intel® 64 и IA-32, том 2A.

Также доступна уникальная комбинация адресных компонентов.

• RIP + смещение ⎯ В 64-битном режиме RIP-относительная адресация использует подписанное 32-битное смещение для вычисления эффективного адреса следующей команды с помощью знака - расширение 32-битного значения и добавление к 64-битовому значению в RIP ,

3.7.6 Режимы адресации ассемблера и компилятора

На уровне машинного кода выбранная комбинация смещения, базового регистра, индексного регистра и масштабного коэффициента кодируется в инструкции. Все ассемблеры позволяют программисту использовать любую из допустимых комбинаций этих компонентов адресации для адресации операндов. Компиляторы языка высокого уровня выберет соответствующую комбинацию этих компонентов на основе языковой конструкции, заданной программистом.

3.7.7 Адресация портов ввода / вывода

Процессор поддерживает адресное пространство ввода-вывода, которое содержит до 65 536 8-битных портов ввода-вывода. Порты, которые являются 16-разрядными и 32-разрядными, также могут быть определены в адресном пространстве ввода-вывода. Порт ввода-вывода может быть адресован либо непосредственным операндом, либо значением в регистре DX. См. Главу 18 «Ввод / вывод» для получения дополнительной информации о адресации портов ввода-вывода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]