[[분류:인텔/중앙처리장치]][[분류:1972년 출시]][[분류:1983년 단종]] [include(틀:펜티엄 이전의 인텔 CPU)] [목차] == 개요 == 1972년 인텔이 출시한 '''세계 최초의 8비트 마이크로프로세서'''이다. 4004와 같은 10μm PMOS 공정으로 생산됐으며, 3500개의 트랜지스터로 구성되어 있다. 원래는 컴퓨터 터미널 코퍼레이션(Computer Terminal Corporation, CTC) 데이터포인트 2200에 들어갔어야 했으나 인텔이 계약을 지키지 못했기 때문에 실제로 사용되지 않았다. 참고로 컴퓨터 터미널 코퍼레이션은 데이터포인트 2200을 [[TTL#s-4]]로 설계해 출시했다. 그럼에도 불구하고 인텔 8008은 [[휴렛 팩커드]] 2640 시리즈에 채용되었으며, 이후 제품들은 [[인텔 8080]]과 [[인텔 8085]]를 사용하기도 했다. == 특징 == 명령어 세트는 데이터포인트 2200에서 사용된 것과 100% 호환성을 가진다. 이는 데이터포인트 2200를 목표로 설계했기 때문이었다. 명령어 하나를 실행하는데 4004의 8-16클럭보다 다소 많은 10-22클럭이 소요되었고 동작 속도 또한 200~800kHz로, 최대 740kHz로 동작할 수 있었던 4004보다 크게 빠르지 않아 초당 명령어 실행 능력은 인텔 4004에 비해 느렸지만 4비트의 두 배인 8비트의 연산 단위를 가지고 있었기 때문에 실제 속도는 두 배 이상으로 빨랐다. 레지스터는 8080하고 호환되지만 레지스터 비트 순서는 완전 다르다. 특이하게도 일반적으로 8비트급의 프로세서가 가지는 16비트의 주소 공간이 아니라 14비트의 주소 공간을 사용했다. 그래서 함수 호출시 복귀 주소는 프로세서 안에 있는 7단계 호출 스택에 저장된다. (Program Counter 포함 8단계) 프로그램 카운터 및 콜 스택은 전부 14비트의 레지스터로 구성되어 있다. == 제원 == || 클럭 || 200~800KHz || || 데이터 폭 || 8비트 || || 어드레스 폭 || 14비트 || || 지원 명령어 || 48개 || || 트랜지스터 || 3,500개 || || 공정 || 10μm || == 아키텍처 == === 레지스터 === * 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 ===# 명령어 #=== || 8진수 || 000 || 001 || 002 || 003 || 004 || 005 || 006 || 007 || 100 || 101 || 102 || 103 || 104 || 105 || 106 || 107 || || 000 ||<-2> HLT || RLC ||<|4> RFc || ADI ||<|8> RST ||<|7> LrI ||<|8> RET ||<|4> JFc ||<|2> INP ||<|4> CFc ||<|2> INP ||<|8> JMP ||<|2> INP ||<|8> CAL ||<|2> INP || || 010 ||<|6> INr ||<|6> DCr || RRC || ACI || || 020 || RAL || SUI ||<|6> OUT ||<|6> OUT ||<|6> OUT ||<|6> OUT || || 030 || RAR || SBI || || 040 || ||<|4> RTc || NDI ||<|4> JTc ||<|4> CTc || || 050 || || XRI || || 060 || || ORI || || 070 || || || || CPI || LMI || || 200 ||<-7> ADr || ADM ||<|7><-7> Lr,,1,,r,,2,, ||<|7> LrM || || 210 ||<-7> ACr || ACM || || 220 ||<-7> SUr || SUM || || 230 ||<-7> SBr || SBM || || 240 ||<-7> NDr || NDM || || 250 ||<-7> XRr || XRM || || 260 ||<-7> ORr || ORM || || 270 ||<-7> CPr || CPM ||<-7> LMr || HLT || 명령어 이름의 소문자는 해당 명령어에서 사용하는 레지스터 이름(r) 또는 조건(c) 중 하나를 의미한다. (예: LrM의 경우 LAM, LBM, ..., JTc의 경우 JTC, JTZ, JTS, JTP) ||<|2> 8진수 코드 ||<|2> Mnemonic ||<-2> ||<-3> ||<-3> ||<|2> 설명 || || D,,7,, || D,,6,, || D,,5,, || D,,4,, || D,,3,, || D,,2,, || D,,1,, || D,,0,, || ||<-11> 인덱스 레지스터 명령어 || ||{{{3DS}}} ||Lr,,1,,r,,2,, || 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 || || ||<|2>{{{0D6 ---}}} ||<|2>LrI || 0 || 0 || D || D || D || 1 || 1 || 0 ||<|2> || || B || B || B || B || B || B || B || B || ||<|2>{{{076 ---}}} ||<|2>LMI || 0 || 0 || 1 || 1 || 1 || 1 || 1 || 0 ||<|2> || || 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 || || ||<-11> 누산기 명령어 || ||{{{20S}}} ||ADr || 1 || 0 || 0 || 0 || 0 || S || S || S || || ||{{{207}}} ||ADM || 1 || 0 || 0 || 0 || 0 || 1 || 1 || 1 || || ||<|2>{{{004 ---}}} ||<|2>ADI || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{014 ---}}} ||<|2>ACI || 0 || 0 || 0 || 0 || 1 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{024 ---}}} ||<|2>SUI || 0 || 0 || 0 || 1 || 0 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{034 ---}}} ||<|2>SBI || 0 || 0 || 0 || 1 || 1 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{044 ---}}} ||<|2>NDI || 0 || 0 || 1 || 0 || 0 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{054 ---}}} ||<|2>XRI || 0 || 0 || 1 || 0 || 1 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{064 ---}}} ||<|2>ORI || 0 || 0 || 1 || 1 || 0 || 1 || 0 || 0 ||<|2> || || 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 || || ||<|2>{{{074 ---}}} ||<|2>CPI || 0 || 0 || 1 || 1 || 1 || 1 || 0 || 0 ||<|2> || || 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 || || ||<-11> 제어 흐름 및 스택 명령어 || ||<|3>{{{1X4 --- ---}}} ||<|3>JMP || 0 || 1 || X || X || X || 1 || 0 || 0 ||<|3> || || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || || X || X || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || ||<|3>{{{1-0 --- ---}}} ||<|3>JFc || 0 || 1 || 0 || C,,4,, || C,,3,, || 0 || 0 || 0 ||<|3> || || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || || X || X || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || ||<|3>{{{1-0 --- ---}}} ||<|3>JTc || 0 || 1 || 1 || C,,4,, || C,,3,, || 0 || 0 || 0 ||<|3> || || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || || X || X || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || ||<|3>{{{1X6 --- ---}}} ||<|3>CAL || 0 || 1 || X || X || X || 1 || 1 || 0 ||<|3> || || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || || X || X || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || ||<|3>{{{1-2 --- ---}}} ||<|3>CFc || 0 || 1 || 0 || C,,4,, || C,,3,, || 0 || 1 || 0 ||<|3> || || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || || X || X || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || ||<|3>{{{1-2 --- ---}}} ||<|3>CTc || 0 || 1 || 1 || C,,4,, || C,,3,, || 0 || 1 || 0 ||<|3> || || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || B,,2,, || || X || X || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || B,,3,, || ||{{{0X7}}} ||RET || 0 || 0 || X || X || X || 1 || 1 || 1 || || ||{{{0-3}}} ||RFc || 0 || 0 || 0 || C,,4,, || C,,3,, || 1 || 1 || 1 || || ||{{{0-3}}} ||RTc || 0 || 0 || 1 || C,,4,, || C,,3,, || 1 || 1 || 1 || || ||{{{0A5}}} ||RES || 0 || 0 || A || A || A || 1 || 0 || 1 || || ||<-11> 입출력 명령어 || ||{{{1--}}} ||INP || 0 || 1 || 0 || 0 || M || M || M || 1 || || ||{{{1--}}} ||OUT || 0 || 1 || R || R || M || M || M || 1 || || ||<-11> 머신 명령어 || ||{{{00-}}} ||HLT || 0 || 0 || 0 || 0 || 0 || 0 || 0 || X || || ||{{{377}}} ||HLT || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || ||