1. 개요
1974년 4월 인텔에서 출시한 8비트 마이크로프로세서다.
2년전 출시된 8008의 개선판이며 바이너리 호환성은 없지만 어셈블리어 수준에서 호환되므로 다시 어셈블하면 정상적으로 작동했다.
8008을 기반으로 하고 있지만 내부 구조에서 개선이 이루어졌다. 가장 큰 변화는 함수 호출시 복귀 주소를 스택 포인터를 이용해서 메모리에 저장한다. 이로 인해 8레벨 이상의 함수 호출이 가능해졌다. 이외에도 여러가지 명령어와 레지스터의 용도를 확장했다.
공정이 더 미세해져서 6마이크로미터의 공정을 사용했다.
2년전 출시된 8008의 개선판이며 바이너리 호환성은 없지만 어셈블리어 수준에서 호환되므로 다시 어셈블하면 정상적으로 작동했다.
8008을 기반으로 하고 있지만 내부 구조에서 개선이 이루어졌다. 가장 큰 변화는 함수 호출시 복귀 주소를 스택 포인터를 이용해서 메모리에 저장한다. 이로 인해 8레벨 이상의 함수 호출이 가능해졌다. 이외에도 여러가지 명령어와 레지스터의 용도를 확장했다.
공정이 더 미세해져서 6마이크로미터의 공정을 사용했다.
2. 상세
3. Z80과의 비교
3.1. 레지스터의 비교
8080의 레지스터 :
8비트 레지스터
B, C, D, E, H, L, F, A
16비트 레지스터
BC, DE, HL, SP (BC, DE, HL은 8비트 레지스터 두개를 하나는 상위 8비트 하나는 하위 8비트로 하여 16비트로 만든 것이다.)
PC
Z80의 레지스터 :
8비트 레지스터
B, C, D, E, H, L, F, A
B', C', D', E', H', L', F', A'
B와 B' 레지스터를 바꾸는 이면지 같은 방법으로 사용할 수 있다. 당연하지만 동시 사용은 불가능.
I(Interrupt Vector) : 인터럽트 벡터값이 저장되있다.
R(Memory Refresh) : DRAM의 리프레시 주기를 카운트한다. 다만 8비트가 아닌 7비트 레지스터다.
16비트 레지스터
BC, DE, HL, SP
IX, IY
PC
8비트 레지스터
B, C, D, E, H, L, F, A
16비트 레지스터
BC, DE, HL, SP (BC, DE, HL은 8비트 레지스터 두개를 하나는 상위 8비트 하나는 하위 8비트로 하여 16비트로 만든 것이다.)
PC
Z80의 레지스터 :
8비트 레지스터
B, C, D, E, H, L, F, A
B', C', D', E', H', L', F', A'
B와 B' 레지스터를 바꾸는 이면지 같은 방법으로 사용할 수 있다. 당연하지만 동시 사용은 불가능.
I(Interrupt Vector) : 인터럽트 벡터값이 저장되있다.
R(Memory Refresh) : DRAM의 리프레시 주기를 카운트한다. 다만 8비트가 아닌 7비트 레지스터다.
16비트 레지스터
BC, DE, HL, SP
IX, IY
PC
3.2. 명령어 세트의 비교
Z80이 개선판이므로 8080은 서술하지 않음.
1. 인덱스 레지스터를 이용한 연산의 추가. 당연하지만 8080은 인덱스 레지스터가 없기 때문에 HL 레지스터를 이용해서 주소 지정을 한다. 그래서 베이스 포인터 개념을 사용하기가 힘들다.
LD r, (IX+d)
ADD A, (IY+d) 등으로 사용할 수 있다.
2. 메모리 리프레쉬 기능 추가.
DRAM을 사용할 경우 리프레쉬 신호를 자동으로 보내준다.
3. 인터럽트 제어의 강화
4. 레지스터를 양쪽으로 사용할 수 있음. r <=> r'
1. 인덱스 레지스터를 이용한 연산의 추가. 당연하지만 8080은 인덱스 레지스터가 없기 때문에 HL 레지스터를 이용해서 주소 지정을 한다. 그래서 베이스 포인터 개념을 사용하기가 힘들다.
LD r, (IX+d)
ADD A, (IY+d) 등으로 사용할 수 있다.
2. 메모리 리프레쉬 기능 추가.
DRAM을 사용할 경우 리프레쉬 신호를 자동으로 보내준다.
3. 인터럽트 제어의 강화
4. 레지스터를 양쪽으로 사용할 수 있음. r <=> r'
3.3. 주소 지정 범위 비교
차이 없음. 8080과 Z80은 서로 호환된다. 하지만 입출력의 경우 Z80에서 확장된 명령어가 있다.