Структура команд и режимы адресации
Команда в защищенном режиме (рис. 3.17) может содержать от 1 до 17 байт:
0, 1,2,3,4 или 5 байта | 1 байт | 0 или1 байт | 0 или1 байт | 0,1,2 или 4 байта | 0,1,2 или 4 байта |
префикс | код операции | постбайт | SIB - байт | байты смещения | байты операнда |
1. Префиксы (0,1,2,3 или 4 байт):
· префикс блокировки шины реализует блокировку шин к общим ресурсам.
· префикс замены сегмента в явной форме указывает сегментный регистр, используемый программой,
· префикс переключения разрядности адреса изменяет принятую по умолчанию разрядность адреса на альтернативную (с 2-х байт на 4 или наоборот),
· префикс размера операнда изменяет разрядность операнда, принятую по умолчанию.
· префикс повторения используется с командами обработки строк, задает условие окончания операции.
Байт SIB (scale-index-base – масштаб-индекс-база) – может отсутствовать; если присутствует – является дополнением к постбайту, модифицирующим процедуру базово-индексной адресации; присутствие байта SIB определяется полем постбайта r/m=100.
Режимы адресации МП IA-32 с использованием SIB-байта (r/m = 100) означают, что следующий байт команды является SIB-байтом, а адрес операнда в упорядоченных массивах данных памяти (таблицах) вычисляется по формуле:
(B)+2S(I) + Disp,
где: B, I иS – поля байта SIB.
1. постбайта в МП IA-32.
Дата добавления: 2015-08-14; просмотров: 587;