IA-32 (сокращение от « Архитектура Intel, 32-разрядная », иногда также называемая i386) - это 32-разрядная версия архитектуры набора команд x86, разработанная Intel и впервые реализованная в микропроцессоре 80386 в 1985 году. IA-32 первое воплощение x86, поддерживающее 32-битные вычисления; в результате термин «IA-32» может использоваться как метоним для обозначения всех версий x86, которые поддерживают 32-разрядные вычисления.
В различных директивах языка программирования IA-32 все еще иногда называют архитектурой «i386». В некоторых других контекстах определенные итерации IA-32 ISA иногда обозначаются i486, i586 и i686, имея в виду надмножества инструкций, предлагаемые микроархитектурами 80486, P5 и P6 соответственно. Эти обновления предлагали многочисленные дополнения к базовому набору IA-32, то есть возможности операций с плавающей запятой и расширения MMX.
Исторически Intel была крупнейшим производителем процессоров IA-32, а вторым по величине поставщиком была AMD. В течение 1990-х годов VIA, Transmeta и другие производители микросхем также производили процессоры, совместимые с IA-32 (например, WinChip ). В современную эпоху Intel по-прежнему производит процессоры IA-32 на платформе микроконтроллеров Intel Quark ; однако с 2000-х годов большинство производителей (включая Intel) перешли почти исключительно на реализацию процессоров на основе 64-разрядного варианта x86, x86-64. x86-64, по спецификации, предлагает унаследованные режимы работы, которые работают на ISA IA-32 для обратной совместимости. Даже учитывая современное преобладание x86-64, по состоянию на 2018 год версии защищенного режима IA-32 многих современных операционных систем все еще поддерживаются, например, Microsoft Windows и дистрибутив Debian Linux. Несмотря на название IA-32 (и вызывающее некоторую потенциальную путаницу), 64-битная эволюция x86, которая возникла у AMD, не будет называться «IA-64», это имя вместо этого принадлежит архитектуре Intel Itanium.
Основной определяющей характеристикой IA-32 является наличие 32-битных регистров процессора общего назначения (например, EAX и EBX), 32-битные целочисленные арифметические и логические операции, 32-битные смещения внутри сегмента в защищенном режиме и преобразование сегментированных адресов в 32-битные линейные адреса. Дизайнеры воспользовались возможностью, чтобы внести и другие улучшения. Некоторые из наиболее значительных изменений описаны ниже.
Рабочий режим | Требуется операционная система | Тип выполняемого кода | Размер адреса по умолчанию | Размер операнда по умолчанию | Типичная ширина георадара |
---|---|---|---|---|---|
Защищенный режим | 32-битная операционная система или загрузчик | 32-битный код защищенного режима | 32 бит | 32 бит | 32 бит |
16-битная операционная система с защищенным режимом или загрузчик, или 32-битный загрузчик | 16-битный код защищенного режима | 16 бит | 16 бит | 16 или 32 бит | |
Виртуальный режим 8086 | 16- или 32-разрядная операционная система в защищенном режиме | 16-битный код реального режима | 16 бит | 16 бит | 16 или 32 бит |
Реальный режим | 16-битная операционная система реального режима или загрузчик, или 32-битный загрузчик | 16-битный код реального режима | 16 бит | 16 бит | 16 или 32 бит |
Нереальный режим | 16-битная операционная система реального режима или загрузчик, или 32-битный загрузчик | 16-битный код реального режима | 32 бит | 16 бит | 16 или 32 бит |