Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

IA-32

From Wikipedia, the free encyclopedia
32-bit version of x86 architecture
This article is about the 32-bit version of the Intel x86 instruction set architecture. For the x86 instruction set architecture in general, seex86.

IA-32 (short for "Intel Architecture, 32-bit", commonly calledi386[1][2])[3] is the32-bit version of thex86instruction set architecture, designed byIntel and first implemented in the80386microprocessor in 1985. IA-32 is the first incarnation of x86 that supports 32-bit computing;[4] as a result, the "IA-32" term may be used as ametonym to refer to all x86 versions that support 32-bit computing.[5][6]

Within variousprogramming language directives, IA-32 is still sometimes referred to as the "i386" architecture. In some other contexts, certain iterations of the IA-32 ISA are sometimes labelledi486,i586 andi686, referring to the instructionsupersets offered by the80486, theP5 and theP6 microarchitectures respectively. These updates offered numerous additions alongside the base IA-32 set includingfloating-point capabilities and theMMX extensions.

Intel was historically the largest manufacturer of IA-32 processors, with the second biggest supplier having beenAMD. During the 1990s,VIA,Transmeta and other chip manufacturers also produced IA-32 compatible processors (e.g.WinChip). In the modern era, Intel still produced IA-32 processors under theIntel Quarkmicrocontroller platform until 2019; however, since the 2000s, the majority of manufacturers (Intel included) moved almost exclusively to implementing CPUs based on the 64-bit variant of x86,x86-64. x86-64, by specification, offers legacy operating modes that operate on the IA-32 ISA for backwards compatibility. Even given the contemporary prevalence of x86-64, as of today, IA-32 protected mode versions of many modern operating systems are still maintained, e.g.Microsoft Windows (up toWindows 10),[7]Windows Server (up toWindows Server 2008)[8] and theDebianLinux distribution.[9] In spite of IA-32's name (and causing some potential confusion), the 64-bit evolution of x86 that originated out of AMD would not be known as "IA-64", that name instead belonging to Intel's discontinuedItanium architecture.

Architectural features

[edit]

The primary defining characteristic of IA-32 is the availability of 32-bit general-purposeprocessor registers (for example, EAX and EBX), 32-bitinteger arithmetic and logical operations, 32-bit offsets within a segment inprotected 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-bit286 instruction set) are:

32-bit integer capability
Allgeneral-purpose registers (GPRs) are expanded from 16 bits to 32 bits, and all arithmetic and logical operations, memory-to-register and register-to-memory operations, etc., can operate directly on 32-bit integers.Pushes and pops on thestack default to 4-byte strides, and non-segmentedpointers 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 apage table. In the 80386,80486, and theoriginal Pentium processors, the physical address was 32 bits; in thePentium Pro and later processors, thePhysical Address Extension allowed 36-bit physical addresses, although the linear address size was still 32 bits.

Operating modes

[edit]
Operating modeOperating system requiredType of code being runDefault address sizeDefault operand sizeTypicalGPR width
Protected mode32-bit operating system or boot loader32-bit protected-mode code32 bits32 bits32 bits
16-bit protected-mode operating system or boot loader, or 32-bit boot loader16-bit protected-mode code16 bits16 bits16 or 32 bits
Virtual 8086 mode16- or 32-bit protected-mode operating system16-bit real-mode code16 bits16 bits16 or 32 bits
Real mode16-bit real-mode operating system or boot loader, or 32-bit boot loader16-bit real-mode code16 bits16 bits16 or 32 bits
Unreal mode16-bit real-mode operating system or boot loader, or 32-bit boot loader16-bit real-mode code32 bits16 bits16 or 32 bits

See also

[edit]

References

[edit]
  1. ^"ditto(1) Mac OS X Manual Page".BSD General Commands Manual.Apple. December 19, 2008. Archived fromthe original on June 2, 2012. RetrievedAugust 3, 2013.Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc.
  2. ^"Additional Predefined Macros".software.intel.com.Intel.Archived from the original on February 15, 2021. RetrievedNovember 25, 2020.
  3. ^Kemp, Steve."Running 32-bit Applications on 64-bit Debian GNU/Linux".Debian Administration. Archived fromthe original on September 16, 2013. RetrievedAugust 31, 2013.
  4. ^"Intel 64 and IA-32 Architectures Software Developer's Manual".Intel Corporation. September 2014. p. 31.Archived from the original on January 26, 2012. RetrievedDecember 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.
  5. ^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. RetrievedDecember 19, 2014.
  6. ^"Supported Hardware".Ubuntu Help.Canonical. Archived fromthe original on December 19, 2014. RetrievedAugust 31, 2013.
  7. ^"Windows 10 System Requirements & Specifications | Microsoft".www.microsoft.com.Archived from the original on May 1, 2018. RetrievedAugust 20, 2018.
  8. ^Scott M. Fulton, III (May 16, 2007)."Windows Server 2008 'The Last 32-bit Operating System'".BetaNews.Archived from the original on April 1, 2023. RetrievedApril 1, 2023.
  9. ^"Debian GNU/Linux on x86 Machines".Archived from the original on April 28, 2019. RetrievedAugust 20, 2020.
Retrieved from "https://en.wikipedia.org/w/index.php?title=IA-32&oldid=1311335375"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp