на языке ассемблер
к.т.н., проф. Красов А.В.
Префиксы – необязательные элементы машинной команды, модифицирующие выполнение машиной команды. Префикс повторения позволяет организовать цепочное исполнение команд; префикс размера адреса позволяет менять разрядность (16 или 32 разрядов); префикс размера оператора позволяет менять размер оператора (16 или 32 разряда); префикс замены сегмента позволяет сменить сегменты;
Код операции – обязательный элемент машинной команды, обозначающий выполняемое действие.
Байт режима адресации modr/m – определяет режим работы с адресом. Поле mod на рисунке определяет количество байт адреса.
Поле reg/коп определяет содержимое первого операнда, это может быть либо регистр, либо продолжение кода операции.
Поле r/m используется совместно с полем mod и определяет использование первого операнда, который может быть либо регистром, либо использоваться для вычисления эффективного адреса (при значении mod=11).
Байт sib - используется для задания адресов операторов. При этом поля mod и b r/m имеют следующие значения mod=01 или mod=10, r/m=100. Поля байта sib имеют следующие значения: ss – масштабный множитель для индексного регистра, возможные значения 1, 2, 4 или 8; index – номер регистра используемого в качестве индексного; base – номер базового регистра.
Поле смещения в команде – 8, 16 или 32 разрядное значение адреса операнда.
Непосредственный операнд – 8, 16 или 32 разрядное числовое значение.