Safekipedia

Intel 8080

Adapted from Wikipedia Β· Adventurer experience

Two Intel 8080 microprocessor chips, early computer processors used in the 1970s.

The Intel 8080 was Intel's second 8-bit microprocessor. It came out in April 1974. It improved on the earlier Intel 8008 and was much more powerful and easier to use.

The 8080 was first made for jobs like calculators, cash registers, and computer terminals. But it soon became popular for many other things, helping start the microcomputer industry.

Several smart design choices made the 8080 very successful. It had a simpler 40-pin package, worked faster, and could handle more memory than the chip before it. These changes came from ideas and feedback from people who used the earlier chip.

The 8080 was used in early personal computers like the Altair 8800 and helped create the x86 architecture that many computers still use today. It could run at 2 MHz and do many tasks quickly, making it a key part of the first home computers.

History

The Intel 8080 was made to fix problems with an earlier chip called the 8008. People wanted a better chip, so Intel began working on the 8080 in 1971. The designers wanted to make a chip that could do more things and work faster.

The 8080 was finished in 1973 and officially released in April 1974. It became popular because it was better and faster than older chips. This chip helped start the era of small computers that many people could use.

Description

Programming model

The Intel 8080 is the successor to the Intel 8008. It uses the same basic instruction set and register model as the 8008, but it is not source code compatible or binary code compatible with it. The 8080 adds 16-bit operations to its instruction set. It can access all of its 16-bit memory space directly. The 8080's 40-pin DIP packaging has a 16-bit address bus and an 8-bit data bus that can reach 64Β KiB (216 bytes) of memory.

Registers

The processor has seven 8-bit registers (A, B, C, D, E, H, and L). A is the main 8-bit accumulator. The other six registers can be used alone or paired as three 16-bit registers (BC, DE, and HL). The 8080 has a 16-bit stack pointer and a 16-bit program counter.

Flags

The processor keeps internal flag bits (a status register) to show the results of arithmetic and logic instructions. The flags are:

  • Sign (S), set if the result is negative.
  • Zero (Z), set if the result is zero.
  • Parity (P), set if the number of 1 bits in the result is even.
  • Carry (C), set if the last addition had a carry or the last subtraction needed a borrow.
  • Auxiliary carry (AC or H), used for binary-coded decimal arithmetic (BCD).

Commands, instructions

Instructions are stored in one byte, with some followed by one or two more bytes of data. It has special instructions for calling and returning from programs and for saving and loading 16-bit register pairs. There are eight special instructions (RST) for small programs at fixed addresses. The slowest instruction is XTHL, which swaps the HL register pair with the top of the stack.

8-bit instructions

All 8-bit math operations with two numbers can only use the 8-bit accumulator (the A register). You can increase or decrease any 8-bit register or a byte in memory pointed to by HL. Copying between any two 8-bit registers or between a register and a byte in memory pointed to by HL is supported.

16-bit operations

Though the 8080 is mainly an 8-bit processor, it can do some 16-bit operations. You can load any of the three 16-bit register pairs (BC, DE, or HL) or SP with a 16-bit number, increase or decrease it, or add it to HL. The only 16-bit instruction that changes a flag is DAD, which sets the CY (carry) flag. You can save and load BC, DE, HL, or PSW to and from the stack using PUSH and POP.

Instruction set

See also: Intel 8008 Β§Β Instruction set, and Intel 8085 Β§Β Instruction set

Input/output scheme

Input output port space

The 8080 has 256 input/output (I/O) ports. These are used with special instructions that take port addresses. This lets the processor use its limited address space more freely. Many CPUs use memory-mapped I/O (MMIO), which uses the same address space for both memory and devices.

Separate stack space

8080 pinout

One bit in the processor's state shows when it is using the stack. This feature is rarely used.

Status word

For more advanced systems, at the start of each operation, the processor puts an 8-bit status word on the data bus. This byte has flags that decide whether the processor uses memory or an I/O port.

Interrupts

Hardware interrupts start when the interrupt request (INT) pin is activated. You can turn interrupts on and off with EI and DI instructions. Interrupts are turned off after an INTA; you must turn them back on with code. The 8080 does not support interrupts that cannot be turned off.

Example code

The following 8080/8085 assembler code shows a program named memcpy that copies a group of bytes from one place to another.

Pin use

The address bus uses 16 pins, and the data bus uses 8 pins. The processor needs three power sources (βˆ’5, +5, and +12Β V) and two timing signals.

OpcodeOperandsMnemonicClocksDescription
76543210b2b3
00000000β€”β€”NOP4No operation
00RP0001datlodathiLXI rp,data10RP ← data
00RP0010β€”β€”STAX rp7(RP) ← A [BC or DE only]
00RP0011β€”β€”INX rp5RP ← RP + 1
00DDD100β€”β€”INR ddd5/10DDD ← DDD + 1
00DDD101β€”β€”DCR ddd5/10DDD ← DDD - 1
00DDD110dataβ€”MVI ddd,data7/10DDD ← data
00RP1001β€”β€”DAD rp10HL ← HL + RP
00RP1010β€”β€”LDAX rp7A ← (RP) [BC or DE only]
00RP1011β€”β€”DCX rp5RP ← RP - 1
00000111β€”β€”RLC4A1-7 ← A0-6; A0 ← Cy ← A7
00001111β€”β€”RRC4A0-6 ← A1-7; A7 ← Cy ← A0
00010111β€”β€”RAL4A1-7 ← A0-6; Cy ← A7; A0 ← Cy
00011111β€”β€”RAR4A0-6 ← A1-7; Cy ← A0; A7 ← Cy
00100010addloaddhiSHLD add16(add) ← HL
00100111β€”β€”DAA4If A0-3 > 9 OR AC = 1 then A ← A + 6;
then if A4-7 > 9 OR Cy = 1 then A ← A + 0x60
00101010addloaddhiLHLD add16HL ← (add)
00101111β€”β€”CMA4A ← Β¬A
00110010addloaddhiSTA add13(add) ← A
00110111β€”β€”STC4Cy ← 1
00111010addloaddhiLDA add13A ← (add)
00111111β€”β€”CMC4Cy ← Β¬Cy
01DDDSSSβ€”β€”MOV ddd,sss5/7DDD ← SSS
01110110β€”β€”HLT7Halt
10ALUSSSβ€”β€”ADD ADC SUB SBB ANA XRA ORA CMP sss4/7A ← A [ALU operation] SSS
11CC000β€”β€”Rcc (RET conditional)5/11If cc true, PC ← (SP), SP ← SP + 2
11RP0001β€”β€”POP rp10RP ← (SP), SP ← SP + 2
11CC010addloaddhiJcc add (JMP conditional)10If cc true, PC ← add
11000011addloaddhiJMP add10PC ← add
11CC100addloaddhiCcc add (CALL conditional)11/17If cc true, SP ← SP - 2, (SP) ← PC, PC ← add
11RP0101β€”β€”PUSH rp11SP ← SP - 2, (SP) ← RP
11ALU110dataβ€”ADI ACI SUI SBI ANI XRI ORI CPI data7A ← A [ALU operation] data
11N111β€”β€”RST n11SP ← SP - 2, (SP) ← PC, PC ← N x 8
11001001β€”β€”RET10PC ← (SP), SP ← SP + 2
11001101addloaddhiCALL add17SP ← SP - 2, (SP) ← PC, PC ← add
11010011portβ€”OUT port10Port ← A
11011011portβ€”IN port10A ← Port
11100011β€”β€”XTHL18HL ↔ (SP)
11101001β€”β€”PCHL5PC ← HL
11101011β€”β€”XCHG4HL ↔ DE
11110011β€”β€”DI4Disable interrupts
11111001β€”β€”SPHL5SP ← HL
11111011β€”β€”EI4Enable interrupts
76543210b2b3MnemonicClocksDescription
SSS DDD210CCALURP
B000NZADD ADI (A ← A + arg)BC
C001ZADC ACI (A ← A + arg + Cy)DE
D010NCSUB SUI (A ← A - arg)HL
E011CSBB SBI (A ← A - arg - Cy)SP or PSW
H100POANA ANI (A ← A ∧ arg)
L101PEXRA XRI (A ← A ⊻ arg)
M110PORA ORI (A ← A ∨ arg)
A111NCMP CPI (A - arg)
SSS DDD210CCALU
Pin numberSignalTypeComment
1A10OutputAddress bus 10
2GNDβ€”Ground
3D4BidirectionalBidirectional data bus. The processor also momentarily transmits the "processor state" during SYNC^Ο†1, providing information about what the processor is currently doing:
D0 (INTA) reading interrupt command. In response to the interrupt signal, the processor is reading and executing a single arbitrary command with this flag raised. Normally the supporting chips provide the subroutine call command (CALL or RST), transferring control to the interrupt handling code.
D1 (WO-) low true. Write to memory or output to port
D2 (STACK) accessing stack (probably a separate stack memory space was initially planned)
D3 (HLTA) doing nothing, has been halted by the HLT instruction
D4 (OUT) writing data to an output port
D5 (M1) reading the first byte of an instruction
D6 (IN) reading data from an input port
D7 (MEMR) reading data from memory
4D5
5D6
6D7
7D3
8D2
9D1
10D0
11βˆ’5 Vβ€”The βˆ’5 V power supply. This must be the first power source connected and the last disconnected, otherwise the processor will be damaged.
12RESETInputReset. This active low signal forces execution of commands located at address 0000. The content of other processor registers is not modified.
13HOLDInputDirect memory access request. The processor is requested to switch the data and address bus to the high impedance ("disconnected") state.
14INTInputInterrupt request
15Ο†2InputThe second phase of the clock generator signal
16INTEOutputThe processor has two commands for setting 0 or 1 level on this pin. The pin normally is supposed to be used for interrupt control. In simple computers, however, it was sometimes used as a single bit output port for various purposes.
17DBINOutputRead (the processor reads from memory or input port)
18WR-OutputWrite (the processor writes to memory or output port). This is an active low output.
19SYNCOutputActive level indicates that the processor has put the "state word" on the data bus. The various bits of this state word provide added information to support the separate address and memory spaces, interrupts, and direct memory access. This signal is required to pass through additional logic before it can be used to write the processor state word from the data bus into some external register, e.g., 8238 Wayback Machine-System Controller and Bus Driver.
20+5 Vβ€”The + 5Β V power supply
21HLDAOutputDirect memory access confirmation. The processor switches data and address pins into the high impedance state, allowing another device to manipulate the bus
22Ο†1InputThe first phase of the clock generator signal
23READYInputWait. With this signal it is possible to suspend the processor's work. It is also used to support the hardware-based step-by step debugging mode.
24WAITOutputWait (indicates that the processor is in the waiting state)
25A0OutputAddress bus
26A1
27A2
2812 Vβ€”The +12 V power supply. This must be the last connected and first disconnected power source.
29A3OutputThe address bus; can switch into high impedance state on demand
30A4
31A5
32A6
33A7
34A8
35A9
36A15
37A12
38A13
39A14
40A11

Support chips

The Intel 8080 microprocessor was popular because it had many supporting chips to help it work. These chips helped with tasks like sending information, keeping time, controlling devices, and managing work.

The supporting chips included:

Physical implementation

The Intel 8080 microprocessor used a special design called NMOS. This design needed extra power levels, including +12 V and βˆ’5 V, besides the usual +5 V used in many electronic parts.

It was made using a process called silicon gate. The chip had very tiny details measuring just 6 micrometers. The chip had around 4,500 tiny parts called transistors connected by metal layers. The chip itself was about 20 mmΒ² in size.

Commercial impact

Applications and successors

The 8080 was used in many early computers, like the MITS Altair 8800, Processor Technology SOL-20, and IMSAI 8080. These computers often used the CP/M operating system. Later, the Zilog Z80 processor became very popular along with CP/M from about 1976 to 1983.

Even after newer processors like the Z80 and 8085 were made, the 8080 stayed popular. In 1979, five companies sold about 500,000 units each month for around $3 to $4 each. The 8080 was also used in early single-board computers like MYCRO-1 and in systems for managing money on buses and trains around the world. It even powered early arcade games, including Gun Fight and Space Invaders.

The 8080 influenced many later processors. Intel made the 8085 after it, and later the 16-bit Intel 8086 and Intel 8088, which IBM used in its first PC. The ideas from the 8080 are still used in computers today.

Industry change

The 8080 changed how computers were made. Before it, big companies like Digital Equipment Corporation, Hewlett-Packard, and IBM built whole computers themselves. The 8080 made it easier for anyone to create computer systems. For example, Hewlett-Packard used it in smart terminals that could run BASIC, and Microsoft’s first product, Microsoft BASIC, was made for the 8080.

The 8080 helped create the x86 family of processors, which are still used in many computers today. Many of the 8080’s basic ideas and instructions are still part of these modern chips.

US Patent

US patent 4010449, Federico Faggin, Masatoshi Shima, Stanley Mazor, "MOS computer employing a plurality of separate chips", issued March 1, 1977. This patent includes important ideas for early computer design.

Cultural impact

The Intel 8080 chip helped change computers forever, and its influence went beyond technology. An asteroid in space was named 8080 Intel to honor the chip’s big role in how computers developed. Some phone numbers, like Microsoft’s 425-882-8080, were chosen because they included the numbers from this important chip. Many of Intel’s own phone numbers also used the ending 8080 to remember this key part of their history.

Images

An AMD AM9080ADC CERDIP40 integrated circuit package, showing the design of an electronic component used in computing technology.
A close-up of the Soviet K580IK80 chip, an early clone of the Intel i8080 microprocessor used in computers.
An OKI MSM8080A microcontroller chip, a small electronic component used in technology and engineering.
A Siemens SAB8080A electronic component, commonly used in early microcomputers.
A close-up photo of a Tesla MHB8080AC CPU chip, showing its intricate design and manufacturing details.
An example of an early computer microprocessor from 1984, showing how technology looked in the past.
An image of historical computer hardware, the Intel 8080 processor, from Poland.
A microprocessor chip, part of a Mitsubishi M5L8080AP, shown against an orange background.
A close-up of the National Semiconductor INS8080AJ microprocessor, showing its detailed design on an orange background.
An image of the NEC 8080AF electronic device.
An image of the Signetics MP8080AI microprocessor chip, an early computer processor used in technology history.
A close-up of the TI TMS8080JL microprocessor chip, an early computer processor used in technology history.

Related articles

This article is a child-friendly adaptation of the Wikipedia article on Intel 8080, available under CC BY-SA 4.0.

Images from Wikimedia Commons. Tap any image to view credits and license.