16-bit computing


16-bit microcomputers are computers in which 16-bit microprocessors were the norm.
A 16-bit register can store 216 different values. The signed range of integer values that can be stored in 16 bits is −32,768 through 32,767 ; the unsigned range is 0 through 65,535. Since 216 is 65,536, a processor with 16-bit memory addresses can directly access 64 KB of byte-addressable memory. If a system uses segmentation with 16-bit segment offsets, more can be accessed.

16-bit architecture

The MIT Whirlwind was quite possibly the first-ever 16-bit computer. Other early 16-bit computers include the IBM 1130, the HP 2100, the Data General Nova, and the DEC PDP-11. Early multi-chip 16-bit microprocessors include the five-chip National Semiconductor IMP-16, the two-chip NEC μCOM-16, the three-chip Western Digital MCP-1600, and the five-chip Toshiba T-3412. Early single-chip 16-bit microprocessors include the Panafacom MN1610, National Semiconductor PACE, General Instrument CP1600, Texas Instruments TMS9900, and the HP BPC. Other notable 16-bit processors include the Intel 8086, the Intel 80286, the WDC 65C816, and the Zilog Z8000. The Intel 8088 was binary compatible with the Intel 8086, and was 16-bit in that its registers were 16 bits wide, and arithmetic instructions could operate on 16-bit quantities, even though its external bus was 8 bits wide.
A 16-bit integer can store 216 distinct values. In an unsigned representation, these values are the integers between 0 and 65,535; using two's complement, possible values range from −32,768 to 32,767. Hence, a processor with 16-bit memory addresses can directly access 64 KB of byte-addressable memory.
16-bit processors have been almost entirely supplanted in the personal computer industry, and are used less than 32-bit CPUs in embedded applications.

16/32-bit Motorola 68000 and Intel 386SX

The Motorola 68000 is sometimes called 16-bit because its internal and external data buses were 16 bits wide; however, it could be considered a 32-bit processor in that the general purpose registers were 32 bits wide and most arithmetic instructions supported 32-bit arithmetic. The 68000 was a microcoded processor with three internal 16-bit ALUs. Only 24 bits of the program counter were available on original DIP packages, with up to 16 megabytes of addressable RAM. 68000 software is 32-bit in nature and forward-compatible with other 32-bit processors in the same family. The 68008 was a version of the 68000 with an 8-bit external data path and 1-megabyte addressing for the 48-pin DIP version, and 4 megabytes for the 52-pin PLCC version. Several Apple Macintosh models--e.g., the LC series--used 32-bit 68020 and 68030 processors on a 16-bit data bus to save cost.
Similar analysis applies to Intel's 80286 CPU replacement, called the 386SX, which is a 32-bit processor with 32-bit ALU and internal 32-bit data paths with a 16-bit external bus and 24-bit addressing of the processor it replaced.

16-bit application

In the context of IBM PC compatible and Wintel platforms, a 16-bit application is any software written for MS-DOS, OS/2 1.x or early versions of Microsoft Windows which originally ran on the 16-bit Intel 8088 and Intel 80286 microprocessors. Such applications used a 20-bit or 24-bit segment or selector-offset address representation to extend the range of addressable memory locations beyond what was possible using only 16-bit addresses. Programs containing more than 216 bytes of instructions and data therefore required special instructions to switch between their 64-kilobyte segments, increasing the complexity of programming 16-bit applications.

List of 16-bit CPUs