32-bit application
<architecture, operating system>
IBM PC software that runs in a 32-bit
flat address space.
The term
32-bit application came about because
MS-DOS and
Microsoft Windows were originally written for the
Intel 8088 and
80286 microprocessors.
These are
16 bit microprocessors with a
segmented address space.
Programs with more than 64 kilobytes 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 PC clones became possible with the introduction of the
Intel 80386 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) or a linear 32-bit address space.
For compatibility reasons, however, much of the software is nevertheless written in 16-bit models.
Operating systems like
Microsoft 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.
See also
Win32s.