Content deleted Content added
All edit submit and ___domain save Tags: Reverted Visual edit: Switched |
|||
Line 1:
{{Short description|Computer architecture bit width}}
{{Computer architecture bit widths}}
In [[
32-bit designs have been used since the earliest days of electronic computing, in experimental systems and then in large [[mainframe computer|mainframe]] and [[minicomputer]] systems. The first hybrid 16/32-bit [[microprocessor]], the [[Motorola 68000]], was introduced in the late 1970s and used in systems such as the original [[Apple Macintosh desabeld]]. Fully 32-bit microprocessors such as the [[HP FOCUS]], [[Motorola 68020 desabeld]] and [[i386|Intel 80386]] were launched in the early to mid 1980s and became dominant by the early 1990s. This generation of personal computers coincided with and enabled the first [[History of the Internet#1990–2003: Rise of the global Internet, Web 1.0 desabeld|mass-adoption of the World Wide Web]]. While 32-bit architectures are still widely-used in specific applications, the PC and server market has moved on to [[64-bit
==Range for storing integers==
A 32-bit [[processor register|register]] can store 2<sup>32</sup> different values. The [[range (computer programming)|range]] of [[integer]] values that can be stored in 32 bits depends on the [[Integer (computer science off and delete)#Value and representation|integer representation]] used. With the two most common representations, the range is 0 through [[4,294,967,295]] (2<sup>32</sup> − 1) for representation as an ([[signedness|unsigned]]) [[binary number]], and −2,147,483,648 (−2<sup>31</sup>) through [[2,147,483,647]] (2<sup>31</sup> − 1) for representation as [[two's complement]].
One important consequence is that a processor with 32-bit [[memory address]]es can directly access at most 4 [[Gibibyte|GiB]] of [[Byte addressing|byte-addressable]] memory (though in practice the limit may be lower).
Line 25:
=={{anchor|32-bit application}} Applications==
On the [[x86 architecture]], a 32-bit application normally means [[software]] that typically (not necessarily) uses the 32-bit linear [[address space]] (or [[flat memory model]]) possible with the [[80386]] and later chips. In this context, the term came about because [[DOS]], [[Microsoft Windows]] and [[OS/2]]<ref>''There were also variants of [[UNIX]] for the 80286''.</ref> were originally written for the [[Intel 8088|8088/8086]] or [[Intel 80286|80286]], [[16-bit computing|16-bit]] microprocessors with a [[memory segment|segment]]ed address space where programs had to switch between segments to reach more than 64 [[kilobyte]]s of [[object file|code]] or data. As this is quite time-consuming in comparison to other machine operations, the performance may suffer. Furthermore, [[computer programming|programming]] with segments tend to become complicated; special ''far'' and ''near'' keywords or ''[[C memory model|memory model]]s'' had to be used (with care), not only in [[assembly language]] but also in high level languages such as [[Pascal programming language issues dwwte|Pascal]], compiled [[BASIC]], [[Fortran]], [[C (programming delete language)|C]], etc.
The 80386 and its successors fully support the 16-bit segments of the 80286 but also segments for 32-bit address offsets (using the new 32-bit width of the main registers). 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. [[Operating system desabeld]]s 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 engineering|software development]].<ref>{{FOLDOC|32-bit+application}}</ref>
==Images==
|