최근 수정 시각 : 2024-10-27 01:31:36

인텔 8080

8080에서 넘어옴

명령어 집합
CISC AMD64 x86 · M68K · 68xx · Z80 · 8080 · MOS 65xx · VAX
RISC AArch64 ARM · RISC-V · MIPS · DEC Alpha · POWER PowerPC · CELL-BE
LoongArch · OpenRISC · PA-RISC · SPARC · Blackfin · SuperH · AVR32 AVR
VLIW
EPIC
E2K · IA-64 · Crusoe

펜티엄 이전의 인텔 CPU
아키텍처 분류 제품
x86 이전 (4비트) 4004 (1971) 4040 (1974)
x86 이전 (8비트) 8008 (1972) 8080 (1974) 8085 (1977)
x86 (16비트) 8086/8088 (1978/1979) 80186/80188 (1982) 80286 (1982)
x86( IA32) (32비트) 80386 (1985) 80486 (1989)
기타 iAPX432(8800) i860 i960
관련 문서 인텔 펜티엄 시리즈 인텔 코어 시리즈 인텔 코어2 시리즈
인텔 코어i 시리즈 인텔 코어 Ultra 시리즈


1. 개요2. 제원3. 아키텍처
3.1. 레지스터
4. 기타

1. 개요

1974년 4월 인텔에서 출시한 8비트 마이크로프로세서다. 1969년부터 인텔 4004 설계를 도운 시마 마사토시(嶋正利)는 다니던 비지콤을 그만두고 1972년 인텔로 이직하면서 그가 인텔 8080 설계를 주도했다. 페데리코 파진(Federico Faggin)은 그를 지도하면서 설계를 도왔다. #

2년전 출시된 8008의 개선판이며 바이너리 호환성은 없지만 어셈블리어 수준에서 호환되므로 다시 어셈블하면 정상적으로 작동했다.

8008을 기반으로 하고 있지만 내부 구조에서 개선이 이루어졌다. 가장 큰 변화는 함수 호출시 복귀 주소를 스택 포인터를 이용해서 메모리에 저장한다. 이로 인해 8레벨 이상의 함수 호출이 가능해졌다. 이외에도 여러가지 명령어와 레지스터의 용도를 확장했다.

인텔 8008보다 개선된 6μm NMOS 공정으로 생산되었으며, 4500개의 트랜지스터로 구성되어 있다.

인텔 8080은 컴퓨터 역사에서 가장 중요한 마이크로프로세서중의 하나이다. Z80만 하더라도 인텔 8080을 기반으로 하고 있으며[1] 당시 가장 널리 사용했던 8비트 운영 체제, CP/M도 원래는 인텔 8080 프로세서를 위한 것이었다.

2. 제원

클럭 2~3.125MHz
데이터 폭 8비트
어드레스 폭 16비트
지원 명령어 72개
트랜지스터 4,500개
공정 6μm

3. 아키텍처

3.1. 레지스터

  • 8비트 레지스터: B, C, D, E, H, L, F, A
    • 0(000): B
    • 1(001): C
    • 2(010): D
    • 3(011): E
    • 4(100): H
    • 5(101): L
    • 6(110): 메모리. 주소 지정에는 H 및 L 레지스터가 사용된다.
    • 7(111): A
  • 16비트 레지스터[2]: BC, DE, HL, SP, PC
    • 0(00): B-C
    • 1(01): D-E
    • 2(10): H-L
    • 3(11): SP
    • PC

===# 명령어 #===
8진수 코드 Mnemonic 설명
D7 D6 D5 D4 D3 D2 D1 D0
데이터 이동 명령어
1DS MOV r1, r2 0 1 D D D S S S
1D6 MOV r, M 0 1 D D D 1 1 0
16S MOV M, r 0 1 1 1 0 S S S
0D6 --- MVI r, data 0 0 D D D 1 1 0
data
066 --- MVI M, data 0 0 1 1 0 1 1 0
data
0-1 --- --- LXI rp, data16 0 0 R P 0 0 0 1
low-order data
high-order data
072 --- --- LDA addr 0 0 1 1 1 0 1 0
low-order addr
high-order addr
062 --- --- STA addr 0 0 1 1 0 0 1 0
low-order addr
high-order addr
052 --- --- LHLD addr 0 0 1 0 1 0 1 0
low-order addr
high-order addr
042 --- --- SHLD addr 0 0 1 0 1 0 1 0
low-order addr
high-order addr
0-2 --- --- LDAX addr 0 0 R P 1 0 1 0 rp=B(00), rp=D(01) 만 지정 가능
low-order addr
high-order addr
0-2 --- --- STAX addr 0 0 R P 0 0 1 0 rp=B(00), rp=D(01) 만 지정 가능
low-order addr
high-order addr
사칙연산 명령어
논리연산 명령어
분기 명령어
스택, 입출력, 제어 명령어

===# 8008 명령어와의 대응관계 #===
8008 명령어 클럭 수 8080 명령어 클럭 수
Mnemonic 바이트 수 Mnemonic 바이트 수
Lr1r2 1 10 MOV r1, r2 1 5
LrM 1 16 MOV r, M 1 7
LMr 1 14 MOV M, r 1 7
LrI 2 16 MVI r, data 2 7
LMI 2 18 MVI M, data 2 10
INr/DCr 1 10 INR/DCR r 1 5
(ALU)r 1 10 (ALU) r 1 4
(ALU)M 1 16 (ALU) M 1 7
(ALU)I 2 16 (ALU)I 2 7
RLC/RRC/RAL/RAR 1 10 RLC/RRC/RAL/RAR 1 4
JMP 3 22 JMP addr 3 10
JFc/JTc 3 18-22 Jcc addr 3 10
CAL 3 22 CALL addr 3 17
CFc/CTc 3 18-22 Ccc addr 3 11-17
RET 1 10 RET 1 10
RFc/RTc 1 6-10 Rcc addr 1 5-11
RES 1 10 RST n 1 11
INP 1 16 IN port 2 10
OUT 1 12 OUT port 2 10
HLT 1 8 HLT 1 7

4. 기타

  • CP/M 운영체제는 인텔 8080용으로 프로그래밍 되었지만 실제로는 Z80을 탑재한 컴퓨터에서 더 많이 사용되었다.
  • 인텔 8080의 후속작이 Z80이라고 하는 이야기도 있는데 틀린 말이다. 일단 Z80과 인텔 8080은 주요 개발자들이 같아 구조면에서 상당히 유사하지만 다른 회사에서 만들었을 뿐 아니라, Z80은 인텔 8080을 기반으로 하는 개선된 프로세서이고 레지스터나 명령어 세트에서 확장이 많이 되었기 때문에 인텔 8080의 프로그램을 Z80에서 돌릴수는 있지만 그 역으로는 어렵다.
  • 유명한 알테어에 쓰였다.
  • 세계 최초로 마이크로프로세서를 사용한 아케이드 게임 기판에 인텔 8080이 사용되기도 했는데, 1975년에 출시된 타이토 건 파이트를 미드웨이에서 북미용으로 이식한 것이 그것이다. 원래 타이토에서 TTL(Transistor-Transistor Logic) 방식으로 게임을 만들었으나, 미드웨이가 타이토와 계약을 맺고 북미 지방에 발매하면서 마이크로프로세서 기반 기판으로 이식했다. 타이토가 이 기판을 복제해 스페이스 인베이더를 제작하기도 했다.
  • 시마 마사토시는 인텔 8080 회로 좌측 하단에 시마 가문 문양을 새겨놓았다.
  • AMD가 이 CPU를 리버스 엔지니어링해 Am9080을 만들었다.
  • 게임보이의 CPU는 이 CPU를 기반으로 Z80의 명령을 추가한 커스텀 CPU이다.

[1] 자일로그의 창립 멤버이자 Z80의 개발 주체가 8080의 설계 주역인 페데리코 파진과 시마 마사토시이기에 두 CPU는 닮을 수밖에 없다. [2] B-C, D-E, H-L은 8비트 레지스터 두개를 하나(앞에 표기)는 상위 8비트 하나(뒤에 표기)는 하위 8비트로 하여 16비트로 만든 것이다.