IA-32 (скорочення від «Intel Architecture, 32-bit», інколи також відомий якi386[1][2][3] —32-бітний варіантнабору процесорних інструкційx86, спроектований компанієюIntel і вперше реалізований у виглядімікропроцесораIntel 80386 1985 року. IA-32 є першою «інкарнацією» x86, що підтримує «чисте» 32-розрядне програмування[4]; як результат, термін «IA-32» може застосовуватися до всіх версій x86, що підтримують 32-розрядні обчислення[5][6].
У опціях багатьохкомпіляторівмов програмування IA-32 досі інколи позначається як «архітектура i386». У деяких інших контекстах для IA-32 використовуються синонімиi486,i586 абоi686 щодо надмножин, реалізованих у відповідних мікроархітектурах (486, P5, P6), що мають доповнення до базової 32-розрядної архітектури IA-32 (такі, як підтримка рухомої коми абоMMX).
Історично фірма Intel була найбільшим виробником процесорів IA-32; другим за обсягом виробництва булаAMD. У 1990-х роках такі процесори виробляли такожVIA Technologies,Transmeta,Centaur та деякі інші фірми. У 21-му столітті Intel деякий час продовжувала виробництво процесорів IA-32 у рамках мікроконтролерної платформиIntel Quark. Втім, у 2010-х роках більшість виробників (включно з Intel) перейшли до виробництва майже винятково процесорів 64-розрядної архітектуриx86-64.
Станом на 2018 рік версії операційних систем для IA-32 все ще існують (наприклад,Microsoft Windows[7] абоUbuntu Linux[8]).
Основною визначною характеристикою архітектури IA-32 є наявність 32-розряднихрегістрів загального призначення (таких, як EAX або EBX), 32-розрядні арифметичні та логічні операції 32-розрядні зміщення у сегменті (у захищеному або «нереальному» режимі роботи процесора), а також трансляціясегментованих адрес у 32-розрядні лінійні адреси.
Проектувальники i386, користуючись нагодою, імплементували також і інші корисні нововведення, зокрема:
Режим роботи | Операційна система | Тип коду, що може запускатися | Розмір адреси (за замовчуванням) | Розмір операндів (за замовчуванням) | Типова ширина регістрів процесора загального призначення |
---|---|---|---|---|---|
Захищений | 32-розрядна ОС або завантажник | 32-розрядний код | 32 біт | 32 біт | 32 біт |
16-розрядна ОС захищеного режиму або завантажник, або 32-розрядний завантажник | 16-розрядний код захищеного режиму | 16 біт | 16 біт | 16 або 32 біт | |
Virtual 8086 mode[en] | 16- або 32-розрядна ОС захищеного режиму | 16-розрядний код реального режиму | 16 біт | 16 біт | 16 або 32 біт |
Реальний | 16-розрядна ОС реального режиму або завантажник, або 32-розрядний завантажник | 16-розрядний код реального режиму | 16 біт | 16 біт | 16 або 32 біт |
Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc.
The Intel386 processor was the first 32-bit processor in the IA-32 architecture family. It introduced 32-bit registers for use both to hold operands and for addressing.