32-bit application: Difference between revisions
No edit summary |
removed garbage |
||
Line 4: | Line 4: | ||
The term 32-bit application came about because [[DOS]] and [[Microsoft Windows]] were originally written for the [[Intel 8088]] and [[Intel 80286]] [[microprocessor]]s. These are [[16-bit]] microprocessors with a [[memory segment|segment]]ed address space. Programs with more than 64 [[kibibyte]]s of [[object file|code]] and/or data therefore had to switch between segments quite frequently. As this operation is quite time consuming in comparison to other machine operations, the application's performance may suffer. Furthermore, [[programming]] with segments is more involved than programming in a flat address space, giving rise to some complications in programming languages like "[[memory model]]s" in [[C (programming language)|C]] and [[C++]]. |
The term 32-bit application came about because [[DOS]] and [[Microsoft Windows]] were originally written for the [[Intel 8088]] and [[Intel 80286]] [[microprocessor]]s. These are [[16-bit]] microprocessors with a [[memory segment|segment]]ed address space. Programs with more than 64 [[kibibyte]]s of [[object file|code]] and/or data therefore had to switch between segments quite frequently. As this operation is quite time consuming in comparison to other machine operations, the application's performance may suffer. Furthermore, [[programming]] with segments is more involved than programming in a flat address space, giving rise to some complications in programming languages like "[[memory model]]s" in [[C (programming language)|C]] and [[C++]]. |
||
The shift from [[16-bit application|16-bit software]] to 32-bit software on [[IBM PC compatible|IBM compatible]] systems became possible with the introduction of the [[Intel 80386|'386]] [[microprocessor]]. This microprocessor and its successors support a segmented address space with 16-bit and 32 bit segments (more precisely: segments with 16- or 32-bit address offset). If the [[base address]] of all 32-bit segments is set to 0, and segment registers are |
The shift from [[16-bit application|16-bit software]] to 32-bit software on [[IBM PC compatible|IBM compatible]] systems became possible with the introduction of the [[Intel 80386|'386]] [[microprocessor]]. This microprocessor and its successors support a segmented address space with 16-bit and 32 bit segments (more precisely: segments with 16- or 32-bit address offset). If the [[base address]] of all 32-bit segments is set to 0, and segment registers are not used explicitly, the segmentation can be forgotten and the processor appears as having a simple linear 32-bit address space. For compatibility reasons, however, much of the software is nevertheless written in 16-bit models. |
||
[[Operating system]]s like [[Microsoft Windows|Windows]] or [[OS/2]] provide the possibility to run 16-bit (segmented) programs as well as 32-bit programs. The former possibility exists for [[backward compatibility]] and the latter is usually meant to be used for new [[software engineering|software development]]. |
[[Operating system]]s like [[Microsoft Windows|Windows]] or [[OS/2]] provide the possibility to run 16-bit (segmented) programs as well as 32-bit programs. The former possibility exists for [[backward compatibility]] and the latter is usually meant to be used for new [[software engineering|software development]]. |
Revision as of 20:52, 3 April 2008
A 32-bit application is software that runs in a 32-bit flat address space (a flat memory model).
Computer architecture bit widths |
---|
Bit |
Application |
Binary floating-point precision |
Decimal floating-point precision |
In computer architecture, 32-bit integers, memory addresses, or other data units are those that are 32 bits (4 octets) wide. Also, 32-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size.
The term 32-bit application came about because DOS and Microsoft Windows were originally written for the Intel 8088 and Intel 80286 microprocessors. These are 16-bit microprocessors with a segmented address space. Programs with more than 64 kibibytes of code and/or data therefore had to switch between segments quite frequently. As this operation is quite time consuming in comparison to other machine operations, the application's performance may suffer. Furthermore, programming with segments is more involved than programming in a flat address space, giving rise to some complications in programming languages like "memory models" in C and C++.
The shift from 16-bit software to 32-bit software on IBM compatible systems became possible with the introduction of the '386 microprocessor. This microprocessor and its successors support a segmented address space with 16-bit and 32 bit segments (more precisely: segments with 16- or 32-bit address offset). If the base address of all 32-bit segments is set to 0, and segment registers are not used explicitly, the segmentation can be forgotten and the processor appears as having a simple linear 32-bit address space. For compatibility reasons, however, much of the software is nevertheless written in 16-bit models.
Operating systems like Windows or OS/2 provide the possibility to run 16-bit (segmented) programs as well as 32-bit programs. The former possibility exists for backward compatibility and the latter is usually meant to be used for new software development.
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.