명령어 형식의 분류
오퍼랜드의 기억장소에 따른 명령어 형식
- 누산기를 이용하는 명령어 형식
- 누산기를 가진 컴퓨터 구조에서 사용되는 형식
- 누산기(AC) : 누산기를 가진 컴퓨터 구조에서 중앙처리장치에 있는 유일한 데이터 레지스터로서 명령어가 수행될 때 오퍼랜드를 기억시키는 레지스터
- ADD X ; AC ← AC+M[X]
- 기억장치 X에 있는 데이터와 어떤 데이터를 더해야할지 모름. 이때 AC에 있는 내용과 X번지의 내용을 더해서 AC에 전송하라는 의미
- LOAD X ; AC ← M[X]
- 기억장치 X번지에 있는 내용을 누산기로 적재하라는 의미
- STORE X ; M[X] ← AC
- 다중 레지스터를 이용하는 명령어 형식
- 다중 레지스터를 가진 컴퓨터 구조는 중앙처리장치 내에 여러 개의 레지스터를 가지고 있는 컴퓨터
- ADD R1, R2, R3 ; R3 ← R1+R2
- 레지스터 R1의 내용과 레지스터 R2의 내용을 더해서 레지스터 R3로 전송하라는 의미
- ADD R1, R2; R2 ← R1+R2
- 레지스터 R1의 내용과 레지스터 R2의 내용을 더해서 레지스터 R2로 전송하라는 의미
- MOVE R1, R2; R2 ← R1
- 레지스터 R1의 내용을 레지스터 R2로 전송하라는 의미
- LOAD X, R1 ; R1 ← M[X]
- 기억장치 X번지에 있는 내용을 레지스터 R1으로 적재하라는 의미
- STORE R1, X ; M[X] ← R1
- 레지스터 R1의 내용을 기억장치 X번지로 적재하라는 의미
- 스택 구조를 이용하는 명령어 형식
- 스택 구조 컴퓨터는 연산에 필요한 오퍼랜드들을 기억장치 스택에 기억시켜야 하고, 연산의 결과도 스택에 기억시키는 구조이다
- ADD; TOS ← TOS + TOS-1
- 주소필드를 사용하지 않음. POP을 두번해 연산을 수행하고 결과값을 다시 PUSH
- PUSH X; TOS ← M[X]
- 기억장치 X번지의 있는 내용을 스택의 맨 위로 전송하라는 의미
- POP X; M[X] ← TOS
오퍼랜드의 수에 따라른 명령어 형식
- 3-주소 명령어
- 명령어 오퍼랜드의 개수가 세 개인 명령어 형식
- 장점 : 산술식을 프로그램화하는데 있어서 프로그램의 길이가 짧아짐
- 단점: 3-주소명령어를 2진 코드화 했을 때 세 개의 오퍼랜드를 나타내기 위한 비트 수가 다른 주소 명령어 형식보다 많이 필요
- 2-주소 명령어
- 오퍼랜드의 개수가 두 개인 명령어 형식
- 상업용 컴퓨터에서 가장 많이 사용
- 장점 : 3-주소 명령어에 비해 명령어의 길이는 짧아짐
- 단점 : 같은 내용을 수행하기 위해 수행해야 하는 명령어 수 증가
- 1-주소 명령어
- 오퍼랜드의 개수가 하나인 명령어 형식
- 기억장치로부터 오퍼랜드를 가져오거나 연산결과를 저장하기 위한 임시적인 장소로 누산기 레지스터를 사용
- 장점 : 명령어의 길이가 매우 짧아서 기억공간을 적게 차지
- 단점 : 특수한 경우를 제외하고는 많은 양의 정보가 스택과 기억장치 사이를 이동하게 되어 비효율적
- 0-주소 명령어
- 스택 구조에서 사용
- 명령어의 길이가 매우 짧아서 기억공간을 적게 차지
- 특수한 경우를 제외하고는 많은 양의 정보가 스택과 기억장치 사이를 이동하게 되어 비효율적