인텔 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)i860i960
관련 문서인텔 펜티엄 시리즈인텔 코어 시리즈인텔 코어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진수000001002003004005006007100101102103104105106107
000HLTRLCRFcADIRSTLrIRETJFcINPCFcINPJMPINPCALINP
010INrDCrRRCACI
020RALSUIOUTOUTOUTOUT
030RARSBI
040RTcNDIJTcCTc
050XRI
060ORI
070CPILMI
200ADrADMLr1r2LrM
210ACrACM
220SUrSUM
230SBrSBM
240NDrNDM
250XRrXRM
260ORrORM
270CPrCPMLMrHLT
명령어 이름의 소문자는 해당 명령어에서 사용하는 레지스터 이름(r) 또는 조건(c) 중 하나를 의미한다. (예: LrM의 경우 LAM, LBM, ..., JTc의 경우 JTC, JTZ, JTS, JTP)

8진수 코드Mnemonic설명
D7D6D5D4D3D2D1D0
인덱스 레지스터 명령어
3DSLr1r211DDDSSS
3D7LrM11DDD111
37SLMr11111SSS
0D6 ---LrI00DDD110
BBBBBBBB
076 ---LMI00111110
BBBBBBBB
0D0INr00DDD000
0D1DCr00DDD001
누산기 명령어
20SADr10000SSS
207ADM10000111
004 ---ADI00000100
BBBBBBBB
21SACr10001SSS
217ACM10001111
014 ---ACI00001100
BBBBBBBB
22SSUr10010SSS
227SUM10010111
024 ---SUI00010100
BBBBBBBB
23SSBr10011SSS
237SBM10011111
034 ---SBI00011100
BBBBBBBB
24SNDr10100SSS
247NDM10100111
044 ---NDI00100100
BBBBBBBB
25SXRr10101SSS
257XRM10101111
054 ---XRI00101100
BBBBBBBB
26SORr10110SSS
267ORM10110111
064 ---ORI00110100
BBBBBBBB
27SCPr10111SSS
277CPM10111111
074 ---CPI00111100
BBBBBBBB
002RLC00000010
012RRC00001010
022RAL00010010
032RAR00011010
제어 흐름 및 스택 명령어
1X4 --- ---JMP01XXX100
B2B2B2B2B2B2B2B2
XXB3B3B3B3B3B3
1-0 --- ---JFc010C4C3000
B2B2B2B2B2B2B2B2
XXB3B3B3B3B3B3
1-0 --- ---JTc011C4C3000
B2B2B2B2B2B2B2B2
XXB3B3B3B3B3B3
1X6 --- ---CAL01XXX110
B2B2B2B2B2B2B2B2
XXB3B3B3B3B3B3
1-2 --- ---CFc010C4C3010
B2B2B2B2B2B2B2B2
XXB3B3B3B3B3B3
1-2 --- ---CTc011C4C3010
B2B2B2B2B2B2B2B2
XXB3B3B3B3B3B3
0X7RET00XXX111
0-3RFc000C4C3111
0-3RTc001C4C3111
0A5RES00AAA101
입출력 명령어
1--INP0100MMM1
1--OUT01RRMMM1
머신 명령어
00-HLT0000000X
377HLT11111111
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 2023-12-15 00:11:33에 나무위키 인텔 8008 문서에서 가져왔습니다.