# 8-bit computing

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/8-bit_computing
> Markdown URL: https://mediated.wiki/source/8-bit_computing.md
> Source: https://en.wikipedia.org/wiki/8-bit_computing
> Source revision: 1354265347
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Computer architecture bit width}}
{{Redirect|8-bit}}
{{multiple issues|
{{more citations needed|date=October 2009}}
{{Original research|date=May 2019}}
}}
{{Computer architecture bit widths}}
{{Use dmy dates|date=May 2025}}
In [computer architecture](/source/computer_architecture), '''8-bit''' [integer](/source/integer_(computer_science))s or other [data](/source/data_(computing)) units are those that are 8 [bit](/source/bit)s wide (1 [octet](/source/octet_(computing))). Also, 8-bit [central processing unit](/source/central_processing_unit) (CPU) and [arithmetic logic unit](/source/arithmetic_logic_unit) (ALU) architectures are those that are based on [register](/source/processor_register)s or [data bus](/source/bus_(computing))es of that size. [Memory address](/source/Memory_address)es (and thus [address bus](/source/address_bus)es) for 8-bit [CPUs](/source/CPUs) are generally larger than 8-bit, usually [16-bit](/source/16-bit). 8-bit [microcomputer](/source/microcomputer)s are microcomputers that use 8-bit [microprocessor](/source/microprocessor)s.

The term '8-bit' is also applied to the [character set](/source/character_encoding)s that could be used on computers with 8-bit bytes, the best known being various forms of [extended ASCII](/source/extended_ASCII), including the [ISO/IEC 8859](/source/ISO%2FIEC_8859) series of national character sets{{snd}} especially [Latin 1](/source/ISO%2FIEC_8859-1) for English and Western European languages.

The [IBM System/360](/source/IBM_System%2F360) introduced [byte-addressable](/source/byte-addressable) memory with 8-bit bytes, as opposed to bit-addressable or decimal digit-addressable or word-addressable memory, although its [general-purpose registers](/source/general-purpose_registers) were [32 bits](/source/32_bits) wide, and addresses were contained in the lower 24 bits of those addresses. Different models of System/360 had different internal data path widths; the [IBM System/360 Model 30](/source/IBM_System%2F360_Model_30) (1965) implemented the 32-bit System/360 architecture, but had an 8-bit native path width, and performed 32-bit arithmetic 8 bits at a time.<ref>{{Cite journal|last1=Amdahl|first1=G. M.|last2=Blaauw|first2=G. A.|author2-link=Gerrit Blaauw|last3=Brooks|first3=F. P.|author3-link=Fred Brooks|year=1964|title=Architecture of the IBM System/360|url=https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC272/S2005/Papers/IBM360-Amdahl_april64.pdf|url-status=live|journal=[IBM Journal of Research and Development](/source/IBM_Journal_of_Research_and_Development)|volume=8|issue=2|pages=87–101|doi=10.1147/rd.82.0087|archive-url=https://web.archive.org/web/20170810085620/https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC272/S2005/Papers/IBM360-Amdahl_april64.pdf|archive-date=10 August 2017|author1-link=Gene Amdahl}}</ref>

The first widely adopted 8-bit [microprocessor](/source/microprocessor) was the [Intel 8080](/source/Intel_8080), being used in many hobbyist computers of the late 1970s and early 1980s, often running the [CP/M](/source/CP%2FM) [operating system](/source/operating_system); it had 8-bit data words and 16-bit addresses. The [Zilog Z80](/source/Zilog_Z80) (compatible with the 8080) and the [Motorola 6800](/source/Motorola_6800) were also used in similar computers. The Z80 and the [MOS Technology 6502](/source/MOS_Technology_6502) 8-bit CPUs were widely used in [home computer](/source/home_computer)s and [second-](/source/Second_generation_of_video_game_consoles) and [third-generation game consoles](/source/Third_generation_of_video_game_consoles) of the 1970s and 1980s. Many 8-bit CPUs or [microcontroller](/source/microcontroller)s are the basis of today's ubiquitous [embedded system](/source/embedded_system)s.

== Historical context ==
8-bit microprocessors were the first widely used microprocessors in the computing industry, marking a major shift from mainframes and minicomputers to smaller, more affordable systems. The introduction of 8-bit processors in the 1970s enabled the production of personal computers, leading to the popularization of computing and setting the foundation for the modern computing landscape.

The 1976 [Zilog Z80](/source/Zilog_Z80), one of the most popular 8-bit CPUs (though with [4-bit](/source/4-bit_computing) ALU, at least in the original), was discontinued in 2024 (its product line Z84C00), with Last Time Buy (LTB) orders by 14 June 2024.<ref>{{Cite web |date=15 April 2024 |title=X80 Product line: Z84C00 |url=https://www.mouser.com/PCN/Littelfuse_PCN_Z84C00.pdf}}</ref>

== Details ==
thumb|MOS Technology 6502, a popular 8-bit microprocessor introduced in 1975. 1985 date code.

An 8-bit register can store 2<sup>8</sup> different values. The [range](/source/range_(computer_programming)) of [integer](/source/integer) values that can be stored in 8 bits depends on the [integer representation](/source/Integer_(computer_science)) used. With the two most common representations, the range is 0 through 255 {{nowrap|(2<sup>8</sup> − 1)}} for representation as an ([unsigned](/source/signedness)) [binary number](/source/binary_number), and −128 {{nowrap|(−1 × 2<sup>7</sup>)}} through 127 {{nowrap|(2<sup>7</sup> − 1)}} for representation as [two's complement](/source/two's_complement).

8-bit CPUs use an [8-bit](/source/octet_(computing)) [data bus](/source/bus_(computing)) and can therefore access 8 bits of data in a single [machine instruction](/source/Instruction_(computer_science)). The address bus is typically a double octet ([16 bit](/source/16-bit_computing)s) wide, due to practical and economical considerations. This implies a direct [address space](/source/address_space) of 64&nbsp;[KB](/source/kilobyte) (65,536 bytes) on most 8-bit processors.

Most [home computer](/source/home_computer)s from the 8-bit era fully exploited the address space, such as the [BBC Micro](/source/BBC_Micro) (Model B) with 32&nbsp;KB of [RAM](/source/random-access_memory) plus 32&nbsp;KB of [ROM](/source/read-only_memory). Others like the very popular [Commodore 64](/source/Commodore_64) had full 64&nbsp;KB RAM, plus 20&nbsp;KB ROM, meaning with 16-bit addressing not all of the RAM could be used by default (e.g. from the included [BASIC](/source/BASIC) language interpreter in ROM);<ref>{{Cite web|title=Bank Switching - C64-Wiki|url=https://www.c64-wiki.com/wiki/Bank_Switching|access-date=8 April 2021|website=www.c64-wiki.com}}</ref> without exploiting [bank switching](/source/bank_switching), which allows for breaking the 64&nbsp;KB (RAM) limit in some systems. Other computers would have as low as 1&nbsp;KB (plus 4&nbsp;KB ROM), such as the Sinclair [ZX80](/source/ZX80) (while the later very popular [ZX Spectrum](/source/ZX_Spectrum) had more memory), or even only 128 bytes of RAM (plus [storage](/source/storage_(memory)) from a [ROM cartridge](/source/ROM_cartridge)), as in an early game console [Atari 2600](/source/Atari_2600) and thus 8-bit addressing would have been enough for the RAM, if it would not have needed to cover ROM too). The [Commodore 128](/source/Commodore_128), and other 8-bit systems, meaning still with 16-bit addressing, could use more than 64&nbsp;KB, i.e. 128&nbsp;KB RAM, also the [BBC Master](/source/BBC_Master) with it expandable to 512&nbsp;KB of RAM.

While in general 8-bit CPUs have 16-bit addressing, in some architectures both are available, such as in the [MOS Technology](/source/MOS_Technology) [6502](/source/MOS_Technology_6502) CPU, where the [zero page](/source/zero_page) is used extensively, saving one byte in the instructions accessing that page, and also having 16-bit addressing instructions that take 2 bytes for the address plus 1 for the opcode. 

Some [index register](/source/index_register)s, such as the two in the 6502, are 8-bit. This limits the size of the arrays addressed using [indexed addressing](/source/indexed_addressing) instructions to objects of up to 256 bytes without requiring more complicated code. Other 8-bit CPUs, such as the [Motorola 6800](/source/Motorola_6800) and [Intel 8080](/source/Intel_8080), have 16-bit index registers.

== Notable 8-bit CPUs ==
{{Main|Microprocessor chronology}}

The first commercial 8-bit processor was the [Intel 8008](/source/Intel_8008) (1972) which was originally intended for the [Datapoint 2200](/source/Datapoint_2200) [intelligent terminal](/source/intelligent_terminal). Most competitors to [Intel](/source/Intel) started off with such character oriented 8-bit microprocessors. Modernized variants of these 8-bit machines are still one of the most common types of processor in embedded systems.

The [MOS Technology 6502](/source/MOS_Technology_6502), and variants of it, were used in personal computers, such as the [Apple I](/source/Apple_I), [Apple II](/source/Apple_II), [Atari 8-bit computers](/source/Atari_8-bit_computers), [BBC Micro](/source/BBC_Micro), [PET](/source/Commodore_PET), [VIC-20](/source/VIC-20), and in [home video game console](/source/home_video_game_console)s such as the [Atari 2600](/source/Atari_2600) and the [Nintendo Entertainment System](/source/Nintendo_Entertainment_System).

{| class="wikitable center-all sortable"
|+ style="font-size: 105%;" | Early or popular 8-bit processors (incomplete)
! Manufacturer !! Processor !! Year !! Comment
|-
| Intel || [8008](/source/Intel_8008) || 1972 || [Datapoint 2200](/source/Datapoint_2200) compatible
|-
| Intel || [8080](/source/Intel_8080) || 1974 || 8008 source compatible
|-
| [Motorola](/source/Motorola) || [6800](/source/Motorola_6800) || 1974 ||
|-
| [Signetics](/source/Signetics) || [2650](/source/Signetics_2650) || 1975 ||
|- 
| [Fairchild](/source/Fairchild_Semiconductor) || [F8](/source/Fairchild_F8) || 1975 ||
|-
| [MOS](/source/MOS_Technology) || [6502](/source/MOS_Technology_6502) || 1975 || Similar to 6800, but incompatible
|-
| [Microchip](/source/Microchip_Technology) || [PIC](/source/PIC_microcontroller) || 1975 ||[Harvard architecture](/source/Harvard_architecture) microcontroller
|-
| [Electronic Arrays](/source/Electronic_Arrays) || [EA9002](/source/EA9002) || 1976 || 8-bit data, 12-bit addressing
|-
| [RCA](/source/RCA_Corporation) || [1802](/source/RCA_1802) || 1976 ||
|-
| [Zilog](/source/Zilog) || [Z80](/source/Zilog_Z80) || 1976 || 8080 binary compatible
|-
| Intel || [8085](/source/Intel_8085) || 1976 || 8080 binary compatible
|-
| Zilog || [Z8](/source/Zilog_Z8) || 1978 ||Harvard architecture microcontroller
|-
| Motorola || [6809](/source/Motorola_6809) || 1978 || 6800 source compatible
|-
| Intel || [8051](/source/Intel_8051) || 1980 || Harvard architecture microcontroller
|-
| MOS || [6510](/source/MOS_Technology_6510) || 1982 || Enhanced 6502 custom-made for use in the [Commodore 64](/source/Commodore_64)
|-
| [Ricoh](/source/Ricoh) || [2A03](/source/Ricoh_2A03) || 1982 || 6502 clone minus BCD instructions for the [Nintendo Entertainment System](/source/Nintendo_Entertainment_System)
|-
| Zilog || [Z180](/source/Zilog_Z180) || 1985 || Z80 binary compatible
|-
| Motorola || [68HC11](/source/Freescale_68HC11) || 1985 || 
|-
| [Hudson](/source/Hudson_Soft) || [HuC6280](/source/Hudson_Soft_HuC6280) || 1987 || 65C02 binary compatible
|-
| [Atmel](/source/Atmel) || [AVR](/source/Atmel_AVR) || 1996 ||
|-
| Zilog || [eZ80](/source/Zilog_eZ80) || 1999 ||Z80 binary compatible
|-
| [Infineon](/source/Infineon) || [XC800](/source/XC800_family)  || 2005 ||
|-
| [Freescale](/source/Freescale_Semiconductor) || [68HC08](/source/Freescale_68HC08) || {{dunno}} ||
|-
| Motorola || [6803](/source/Motorola_6800_family) || {{dunno}} ||
|-
| [NEC](/source/NEC) || [78K0](/source/NEC_78K0)<ref>{{Cite web|url=http://www.am.necel.com/micro/product/all_8_general.html/|title=NEC 78K0|publisher=[NEC](/source/NEC)|archive-url=https://web.archive.org/web/20081028210428/http://www.am.necel.com/micro/product/all_8_general.html/|archive-date=28 October 2008|url-status=dead|access-date=10 February 2009}}</ref> || {{dunno}} ||
|}

== Use for training, prototyping, and general hardware education ==
8-bit processors continue to be designed for general education about computer hardware, as well as for hobbyists' interests. One such CPU was designed and implemented using [7400-series integrated circuits](/source/7400-series_integrated_circuits) on a [breadboard](/source/breadboard).<ref>{{cite web|first=Daniel|last=Oberhaus|title= This Guy Designed and Built an 8-bit CPU from Scratch|website=[Motherboard](/source/Motherboard_(website))|date=9 February 2019|url=https://www.vice.com/en/article/diy-8-bit-cpu/|access-date=4 November 2021}}</ref><ref>{{cite AV media|url=https://www.youtube.com/watch?v=g_ZaioqF1B0|title=Homebuilt 8-bit CPU + Computer with graphics and sound made from scratch using 74HC Logic|first=Paulo|last=Constantino}}</ref> Designing 8-bit CPUs and their respective assemblers is a common training exercise for engineering students, engineers, and hobbyists. [FPGA](/source/FPGA)s are used for this purpose.

== See also ==
* [Kenbak-1](/source/Kenbak-1)

== References ==
{{Reflist}}

{{CPU technologies}}
{{Authority control}}

Category:Data unit
Category:8-bit computers

---
Adapted from the Wikipedia article [8-bit computing](https://en.wikipedia.org/wiki/8-bit_computing) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/8-bit_computing?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
