Адресация и многозадачность: Логический адрес и возможные методы его формирования (методы адресации) |
Программирование - Архитектура и система команд микропроцессоров x86 | ||||||||||||||||||
Логический адрес — это адрес, с которым обычно оперирует программное обеспечение, формируется он из двух величин. Первая — это 16-битный селектор (указатель) сегмента (берется из соответствующего операции сегментного регистра), вторая — 32(16)-битное смещение относительно начала сегмента. Логический адрес существует лишь внутри процессора и имеет смысл для программного обеспечения. Его преобразование в физический адрес для обращения к памяти осуществляется с помощью достаточно сложного механизма, функционирование которого существенно зависит от текущего режима работы процессора. Программы могут использовать различные методы адресации (методы формирования логического адреса). В общем случае эти методы можно разделить на прямые и косвенные. Отличаются они способом задания 32(16)-битного смещения. Смещение может задаваться в коде программы непосредственным 32(16)-битным значением (прямая адресация), либо путем указания на регистр (регистры), значение в котором является смещением (косвенная адресация). Все возможные способы формирования 32-битного смещения представляются формулой на рис. 2.1. (в режиме 16-битной адресации 32-битные регистры заменяются на соответствующие 16-битные: EAX – AX, EBX – BX и т.д.).
Рис. 2.1. Возможные методы формирования смещения
Для формирования полного логического адреса смещение комбинируется с селектором сегмента. Селектор сегмента берется из одного из сегментных регистров (CS, DS, ES, SS, FS, GS). Используемый сегментный регистр задается либо неявно, либо с помощью префикса замещения сегмента, который предшествует коду команды. Используемые по умолчанию сегментные регистры, зависят от адресуемого объекта (операнд, команда и т.п.) и приведены в следующей таблице.
Таблица 2.1. Сегментные регистры, используемые по умолчанию
|
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru