IA-32
IA-32 (short for "Intel Architecture, 32-bit", commonly called i386
Within various
Intel was historically the largest manufacturer of IA-32 processors, with the second biggest supplier having been
Architectural features
The primary defining characteristic of IA-32 is the availability of 32-bit general-purpose processor registers (for example, EAX and EBX), 32-bit integer arithmetic and logical operations, 32-bit offsets within a segment in protected mode, and the translation of segmented addresses to 32-bit linear addresses. The designers took the opportunity to make other improvements as well. Some of the most significant changes (relative to the 16-bit 286 instruction set) are:
- 32-bit integer capability
- All are 4 bytes wide.
- More general addressing modes
- Any GPR can be used as a base register, and any GPR other than ESP can be used as an index register, in a memory reference. The index register value can be multiplied by 1, 2, 4, or 8 before being added to the base register value and displacement.
- Additional segment registers
- Two additional segment registers, FS and GS, are provided.
- Larger virtual address space
- The IA-32 architecture defines a 48-bit segmented address format, with a 16-bit segment number and a 32-bit offset within the segment. Segmented addresses are mapped to 32-bit linear addresses.
- Demand paging
- 32-bit linear addresses are virtual addresses rather than physical addresses; they are translated to physical addresses through a original Pentium processors, the physical address was 32 bits; in the Pentium Pro and later processors, the Physical Address Extensionallowed 36-bit physical addresses, although the linear address size was still 32 bits.
Operating modes
Operating mode | Operating system required | Type of code being run | Default address size | Default operand size | Typical GPR width
|
---|---|---|---|---|---|
Protected mode | 32-bit operating system or boot loader | 32-bit protected-mode code | 32 bits | 32 bits | 32 bits |
16-bit protected-mode operating system or boot loader, or 32-bit boot loader | 16-bit protected-mode code | 16 bits | 16 bits | 16 or 32 bits | |
Virtual 8086 mode | 16- or 32-bit protected-mode operating system | 16-bit real-mode code | 16 bits | 16 bits | 16 or 32 bits |
Real mode | 16-bit real-mode operating system or boot loader, or 32-bit boot loader | 16-bit real-mode code | 16 bits | 16 bits | 16 or 32 bits |
Unreal mode | 16-bit real-mode operating system or boot loader, or 32-bit boot loader | 16-bit real-mode code | 32 bits | 16 bits | 16 or 32 bits |
See also
- x86-64
- IA-64
- List of former IA-32 compatible processor manufacturers
- Transient execution CPU vulnerability
References
- ^ "ditto(1) Mac OS X Manual Page". BSD General Commands Manual. Apple. December 19, 2008. Archived from the original on June 2, 2012. Retrieved August 3, 2013.
Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc.
- ^ "Additional Predefined Macros". software.intel.com. Intel. Archived from the original on February 15, 2021. Retrieved November 25, 2020.
- ^ Kemp, Steve. "Running 32-bit Applications on 64-bit Debian GNU/Linux". Debian Administration. Archived from the original on September 16, 2013. Retrieved August 31, 2013.
- Intel Corporation. September 2014. p. 31. Archivedfrom the original on January 26, 2012. Retrieved December 19, 2014.
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.
- ^ Green, Ronald W. (May 5, 2009). "What do IA-32, Intel 64 and IA-64 Architecture mean?". software.intel.com. Intel. Archived from the original on December 19, 2014. Retrieved December 19, 2014.
- Canonical. Archived from the originalon December 19, 2014. Retrieved August 31, 2013.
- ^ "Windows 10 System Requirements & Specifications | Microsoft". www.microsoft.com. Archived from the original on May 1, 2018. Retrieved August 20, 2018.
- ^ Scott M. Fulton, III (May 16, 2007). "Windows Server 2008 'The Last 32-bit Operating System'". BetaNews.
- ^ "Debian GNU/Linux on x86 Machines". Archived from the original on April 28, 2019. Retrieved August 20, 2020.