Форматы команд: Базовый формат команд |
Программирование - Архитектура и система команд микропроцессоров x86 | |||
Кодировки всех команд являются подмножеством базового формата команды, показанного на рис. 5.1.
Рис. 5.1. Базовый формат команды
Команда содержит следующие поля:
В коде операции могут быть определены более мелкие поля:
Эти поля варьируются в зависимости от класса операции. Большинство команд, которые могут ссылаться на операнд в памяти, содержат байт режима адресации, следующий за байтом (байтами) кода операции. Этот байт, называемый ModR/M байтом, определяет используемую форму (режим) адресации. Кодирование определенным образом байта ModR/M указывает на наличие второго байта спецификатора адреса — SIB байта, который следует сразу же за байтом ModR/M и необходим для полного описания формы адресации. Формы адресации могут включать в себя смещение, следующее непосредственно за ModR/M байтом или SIB байтом. Присутствующее смещение может быть 8, 16 или 32-битным. Если в команде присутствует непосредственный операнд, то он всегда следует за байтами смещения и является последним полем в команде. Для каждой группы префиксов зарезервировано не более одного байта, т.е. префикс данной группы может присутствовать или нет. Префиксы сгруппированы следующим образом:
В команде может присутствовать только по одному префиксу из каждой группы. Результат использования избыточного количества префиксов (более одного префикса из группы) неопределен и варьируется от процессора к процессору. Префиксы могут следовать в любом порядке. Префиксы команды:
Префиксы замещения сегмента:
|
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru