Структура команд и режимы адресации

Программная модель 32-битового микропроцессора

Постбайт

Это необязательный элемент команды. Задает один (для одноадресной команды) или два адреса операндов, один из которых используется и как адрес результата.

   
  md reg r/m  
Рис. 3.6. Структура постбайта

 

Постбайт (рис. 3.6) содержит 3 поля:

· md – поле режима адресации,

· reg – поле адреса регистра,

· r/m – поле адреса второго регистра или кода, определяющего способ вычисления адреса ячейки памяти.

В программной модели МП IA-32 от МП IA-16 с поправками на разрядность ширины обработки данных сохранились следующие решения:

· модель сегментированной математической памяти,

· задание адресов в сегменте компонентами, но с расширением возможностей по заданию адреса в массиве (использование возможности индексирования элементов массива в произвольном порядке),

· выделение адресного пространства для портов (программно-доступных регистров контроллеров устройств ввода-вывода).

Основной особенностью программной модели МП IA-32, кроме расширения разрядности адресов данных и команд, индексирования элементов массива в произвольном порядке и многократного расширения адресного пространства математической памяти, является встроенная аппаратная система защиты программ от взаимных помех.

Эта система предусматривает:

· использование специальных программных структур:

1. дескрипторов сегментов, определяющих сегменты (данных, программ),

2. дескрипторов шлюзов (точек входов в программные сегменты).

· введение :

1.системных и пользовательских таблиц дескрипторов,

2.новой процедуры программных переходов "переключение задач".

3.набора системных регистров дескрипторов.

Команда в защищенном режиме (рис. 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.