32-bit application

The term 32-bit application came about because MS-DOS and
Microsoft Windows were originally written for the Intel
8088 and 80286microprocessors. 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 PCclones 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.