Необязательные элементы машинной команды, каждый из которых состоит из 1 байта или может отсутствовать. В памяти префиксы предшествуют команде. Назначение префиксов – модифицировать операцию, выполняемую командой. Прикладная программа может использовать следующие типы префиксов:
1) Префикс замены сегмента. В явной форме указывает, какой сегментный регистр используется в данной команде для адресации стека или данных. Префикс отменяет выбор сегментного регистра по умолчанию. Префиксы замены сегмента имеют следующие значения: 2eh — замена сегмента cs, 36h — замена сегмента ss, 3eh — замена сегмента ds, 26h — замена сегмента es, 64h — замена сегмента fs, 65h — замена сегмента gs.
2) Префикс разрядности адреса уточняет разрядность адреса (32 или 16-разрядный). Каждой команде, в которой используется адресный операнд, ставится в соответствие разрядность адреса этого операнда. Этот адрес может иметь разрядность 16 или 32 бит. Если разрядность адреса для данной команды 16 бит, это означает, что команда содержит 16-разрядное смещение (см. рис. 8.1) и оно соответствует 16-разрядному смещению адресного операнда относительно начала некоторого сегмента. Это смещение называется эффективным адресом. Если разрядность адреса 32 бит, это означает, что команда содержит 32-разрядное смещение (см. рис. 8.1), оно соответствует 32-разрядному смещению адресного операнда относительно начала сегмента и по его значению формируется 32-битное смещение в сегменте. С помощью префикса разрядности адреса можно изменить действующее по умолчанию значение разрядности адреса. Это изменение будет касаться только той команды, которой предшествует префикс.
3) Префикс разрядности операнда аналогичен префиксу разрядности адреса, но указывает на разрядность операндов (32 или 16-разрядные), с которыми работает команда.
4) Префикс повторения используется с цепочечными командами (командами обработки строк). Этот префикс ««зацикливает» команду для обработки всех элементов цепочки. Система команд поддерживает два типа префиксов: безусловные (rep — 0f3h), заставляющие повторяться цепочечную команду некоторое количество раз, и условные (repe/repz - 0f3h, repne/repnz - 0f2h), которые при зацикливании проверяют некоторые флаги, — и в результате проверки возможен досрочный выход из цикла.