인텔 8008

덤프버전 :


펜티엄 이전의 인텔 CPU
아키텍처 분류
제품
x86 이전 (4비트)
4004 ('71)
4040 ('74)
x86 이전 (8비트)
8008 ('72)
8080 ('74)
8085 ('77)
x86 (16비트)
8086/8088 ('78/'79)
80186/80188 ('82)
80286 ('82)
x86(IA32) (32비트)
80386 ('85)
80486 ('89)
기타
iAPX432(8800)
i860
i960
관련 문서
인텔 펜티엄 시리즈
인텔 코어 시리즈
인텔 코어2 시리즈
인텔 코어i 시리즈


1. 개요
2. 특징
3. 제원
4. 아키텍처
4.1. 레지스터
4.2. 명령어


1. 개요[편집]


1972년 인텔이 출시한 세계 최초의 8비트 마이크로프로세서이다.

4004와 같은 10μm PMOS 공정으로 생산됐으며, 3500개의 트랜지스터로 구성되어 있다.

원래는 컴퓨터 터미널 코퍼레이션(Computer Terminal Corporation, CTC) 데이터포인트 2200에 들어갔어야 했으나 인텔이 계약을 지키지 못했기 때문에 실제로 사용되지 않았다. 참고로 컴퓨터 터미널 코퍼레이션은 데이터포인트 2200을 TTL로 설계해 출시했다. 그럼에도 불구하고 인텔 8008은 휴렛 팩커드 2640 시리즈에 채용되었으며, 이후 제품들은 인텔 8080인텔 8085를 사용하기도 했다.


2. 특징[편집]


명령어 세트는 데이터포인트 2200에서 사용된 것과 100% 호환성을 가진다. 이는 데이터포인트 2200를 목표로 설계했기 때문이었다.

명령어 하나를 실행하는데 4004의 8-16클럭보다 다소 많은 10-22클럭이 소요되었고 동작 속도 또한 200~800kHz로, 최대 740kHz로 동작할 수 있었던 4004보다 크게 빠르지 않아 초당 명령어 실행 능력은 인텔 4004에 비해 느렸지만 4비트의 두 배인 8비트의 연산 단위를 가지고 있었기 때문에 실제 속도는 두 배 이상으로 빨랐다.

레지스터는 8080하고 호환되지만 레지스터 비트 순서는 완전 다르다.

특이하게도 일반적으로 8비트급의 프로세서가 가지는 16비트의 주소 공간이 아니라 14비트의 주소 공간을 사용했다. 그래서 함수 호출시 복귀 주소는 프로세서 안에 있는 7단계 호출 스택에 저장된다. (Program Counter 포함 8단계) 프로그램 카운터 및 콜 스택은 전부 14비트의 레지스터로 구성되어 있다.


3. 제원[편집]


클럭
200~800KHz
데이터 폭
8비트
어드레스 폭
14비트
지원 명령어
48개
트랜지스터
3,500개
공정
10μm


4. 아키텍처[편집]



4.1. 레지스터[편집]


  • 8비트 레지스터: A(누산기), B, C, D, E, H, L
    • 0(
      000
      ): A
    • 1(
      001
      ): B
    • 2(
      010
      ): C
    • 3(
      011
      ): D
    • 4(
      100
      ): E
    • 5(
      101
      ): H
    • 6(
      110
      ): L
    • 7(
      111
      ): 메모리. 주소 지정에는 H 및 L 레지스터가 사용된다.
  • 14비트 레지스터: PC 및 7단계 호출 스택
  • 플래그 레지스터
    • 0(
      00
      ): C - Carry(올림수)
    • 1(
      01
      ): Z - Zero
    • 2(
      10
      ): S - Signed
    • 3(
      11
      ): P - Even parity


4.2. 명령어[편집]


8진수
000
001
002
003
004
005
006
007
100
101
102
103
104
105
106
107
000
HLT
RLC
RFc
ADI
RST
LrI
RET
JFc
INP
CFc
INP
JMP
INP
CAL
INP
010
INr
DCr
RRC
ACI
020
RAL
SUI
OUT
OUT
OUT
OUT
030
RAR
SBI
040

RTc
NDI
JTc
CTc
050

XRI
060

ORI
070



CPI
LMI
200
ADr
ADM
Lr1r2
LrM
210
ACr
ACM
220
SUr
SUM
230
SBr
SBM
240
NDr
NDM
250
XRr
XRM
260
ORr
ORM
270
CPr
CPM
LMr
HLT
명령어 이름의 소문자는 해당 명령어에서 사용하는 레지스터 이름(r) 또는 조건(c) 중 하나를 의미한다. (예: LrM의 경우 LAM, LBM, ..., JTc의 경우 JTC, JTZ, JTS, JTP)

8진수 코드
Mnemonic



설명
D7
D6
D5
D4
D3
D2
D1
D0
인덱스 레지스터 명령어
3DS

Lr1r2
1
1
D
D
D
S
S
S

3D7

LrM
1
1
D
D
D
1
1
1

37S

LMr
1
1
1
1
1
S
S
S

0D6 ---

LrI
0
0
D
D
D
1
1
0

B
B
B
B
B
B
B
B
076 ---

LMI
0
0
1
1
1
1
1
0

B
B
B
B
B
B
B
B
0D0

INr
0
0
D
D
D
0
0
0

0D1

DCr
0
0
D
D
D
0
0
1

누산기 명령어
20S

ADr
1
0
0
0
0
S
S
S

207

ADM
1
0
0
0
0
1
1
1

004 ---

ADI
0
0
0
0
0
1
0
0

B
B
B
B
B
B
B
B
21S

ACr
1
0
0
0
1
S
S
S

217

ACM
1
0
0
0
1
1
1
1

014 ---

ACI
0
0
0
0
1
1
0
0

B
B
B
B
B
B
B
B
22S

SUr
1
0
0
1
0
S
S
S

227

SUM
1
0
0
1
0
1
1
1

024 ---

SUI
0
0
0
1
0
1
0
0

B
B
B
B
B
B
B
B
23S

SBr
1
0
0
1
1
S
S
S

237

SBM
1
0
0
1
1
1
1
1

034 ---

SBI
0
0
0
1
1
1
0
0

B
B
B
B
B
B
B
B
24S

NDr
1
0
1
0
0
S
S
S

247

NDM
1
0
1
0
0
1
1
1

044 ---

NDI
0
0
1
0
0
1
0
0

B
B
B
B
B
B
B
B
25S

XRr
1
0
1
0
1
S
S
S

257

XRM
1
0
1
0
1
1
1
1

054 ---

XRI
0
0
1
0
1
1
0
0

B
B
B
B
B
B
B
B
26S

ORr
1
0
1
1
0
S
S
S

267

ORM
1
0
1
1
0
1
1
1

064 ---

ORI
0
0
1
1
0
1
0
0

B
B
B
B
B
B
B
B
27S

CPr
1
0
1
1
1
S
S
S

277

CPM
1
0
1
1
1
1
1
1

074 ---

CPI
0
0
1
1
1
1
0
0

B
B
B
B
B
B
B
B
002

RLC
0
0
0
0
0
0
1
0

012

RRC
0
0
0
0
1
0
1
0

022

RAL
0
0
0
1
0
0
1
0

032

RAR
0
0
0
1
1
0
1
0

제어 흐름 및 스택 명령어
1X4 --- ---

JMP
0
1
X
X
X
1
0
0

B2
B2
B2
B2
B2
B2
B2
B2
X
X
B3
B3
B3
B3
B3
B3
1-0 --- ---

JFc
0
1
0
C4
C3
0
0
0

B2
B2
B2
B2
B2
B2
B2
B2
X
X
B3
B3
B3
B3
B3
B3
1-0 --- ---

JTc
0
1
1
C4
C3
0
0
0

B2
B2
B2
B2
B2
B2
B2
B2
X
X
B3
B3
B3
B3
B3
B3
1X6 --- ---

CAL
0
1
X
X
X
1
1
0

B2
B2
B2
B2
B2
B2
B2
B2
X
X
B3
B3
B3
B3
B3
B3
1-2 --- ---

CFc
0
1
0
C4
C3
0
1
0

B2
B2
B2
B2
B2
B2
B2
B2
X
X
B3
B3
B3
B3
B3
B3
1-2 --- ---

CTc
0
1
1
C4
C3
0
1
0

B2
B2
B2
B2
B2
B2
B2
B2
X
X
B3
B3
B3
B3
B3
B3
0X7

RET
0
0
X
X
X
1
1
1

0-3

RFc
0
0
0
C4
C3
1
1
1

0-3

RTc
0
0
1
C4
C3
1
1
1

0A5

RES
0
0
A
A
A
1
0
1

입출력 명령어
1--

INP
0
1
0
0
M
M
M
1

1--

OUT
0
1
R
R
M
M
M
1

머신 명령어
00-

HLT
0
0
0
0
0
0
0
X

377

HLT
1
1
1
1
1
1
1
1

파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-15 00:11:33에 나무위키 인텔 8008 문서에서 가져왔습니다.