Набор команд процессоров 8086/80186/80286 расширен для микропроцессора
i486 в двух ортогональных направлениях: добавлены 32-разрядные формы всех
16-разрядных команд для поддержки работы с 32-разрядными типами данных и
создана возможность использования 32-разрядных режимов адресации для всех
команд, которые обращаются к памяти. Это ортогональное расширение набора
набора команд обеспечивается наличием бита Умолчания (D) в дескрипторе
сегмента кода и возможностью использования 2 префиксов к командам набора.
Использование по умолчанию 16-разрядных или 32-разрядных команд зависит от
установки бита D в дескрипторе сегмента кода, который определяет длину (32
и 16 разрядов) для обоих операндов и эффективного адреса, принимаемую по
умолчанию при выполнении команд данного сегмента. При работе
микропроцессора i486 в режиме реальных адресов или в режиме виртуального
8086, дескрипторы сегмента кода не используются, но предпологается, что
бит D установлен в 0 внутри процессора ( для использования по умолчанию
16-разрядных размеров, совместимых с процессорами 8086/80186/80286 ).
Два возможных префикса - префикс размера операнда и префикс размера
эффективного адреса, позволяют переопределять для конкретной команды
принятые по умолчанию размеры операндов и эффективного адреса. Эти
префиксы могут предшествовать байтам кода операции и оказывать влияние
только на команду, с которой они используются. Возможно помещение перед
кодом операции одного из указанных префиксов или обоих одновременно.
Указание префикса размера операнда или префикса размера эффективного
адреса перед командой обеспечит использование размеров операндов или
эффективного адреса, "противоположных" принятым по умолчанию. Например,
если по умолчанию установлен размер данных в 32 разряда, а команде
предшествует префикс размера операнда, данная команда будет использовать
16-разрядные данные. Если же например, размер эффективного адреса принят
по умолчанию равным 16 битам, а перед командой использован префикс размера
эффективного адреса, для команды вычислится 32-разрядный эффективный
адрес.
Использование 32-разрядных расширений возможно в любом режиме
микропроцессора i486, включая режим реальных адресов и режим виртуального
8086. В этих режимах всегда принят по умолчанию размер, равный 16 битам и
применение префиксов необходимо для использования 32-разрядных адресов и
операндов. Для команд, использующих более одного префикса, порядок
префиксов не имеет значения.
Если переопределение размеров не используется, команды с 8-разрядными и
16-разрядными операндами не оказывают влияние на содержимое старших битов
расширенных регистров.