[계산기 구조] 17.명령어 방식

이번에는 정보처리기사 필기 과목인 전자계산기 구조의 명령어 방식을 알아보아요.

명령어 방식
명령어는 명령부(OP Code + Mode)와 자료부(주소필드, Operand)로 구성합니다.
이 중에 자료부(Operand 부)에 올 수 있는 개수에 따라 명령어 방식을 구분합니다.
0주소 명령어(0 Address Instruction)
1주소 명령어(1 Address Instruction)
2주소 명령어(2 Address Instruction)
3주소 명령어(3 Address Instruction)

0주소 명령어(0 Address Instruction)
OP Code 부만 있고 주소를 지정하는 자료부(Operand 부)가 없는 명령어
모든 연산은 Stack 메모리의 TOP(Stack 포인터)이 가리키는 Operand를 이용하여 명령을 수행합니다.
스택 기계(Stack Machine)라고 부릅니다.
명령 수행 시간이 짧고 기억 공간 효율이 높습니다.
Postfix 방식으로 수식을 표현해야 합니다.
피연산자는 PUSH, 연산자를 만나면 연산에 사용할 피연산자를 POP한 후에 연산 결과를 PUSH합니다.

1주소 명령어(1 Address Instruction)
주소를 지정하는 자료부(Operand )가 1개 있습니다.
누산기(AC, Accumulator)를 이용하여 처리하며 수행 결과도 누산기에 저장합니다.

2주소 명령어(2 Address Instruction)
주소를 지정하는 자료부(Operand )가 2개 있습니다.
가장 일반적인 명령어 방식입니다.
실행 속도가 빠르고 기억 장소 효율이 좋습니다.
수행 결과를 기억장치에 저장하고 중앙처리장치에도 남아 있어서 결과를 테스트할 때 시간을 절약할 수 있습니다.
전체 프로그램 길이가 길어지는 단점이 있습니다.
연산 결과를 한 쪽에 저장해야 해서 한쪽의 자료가 사라집니다.

3주소 명령어(3 Address Instruction)
주소를 지정하는 자료부(Operand )가 3개 있습니다.
연산 결과를 한 영역을 사용하여 원래의 자료가 사라지지 않습니다.
프로그램 길이를 짧게 할 수 있습니다.
명령 인출에 필요한 주기억장치 접근 횟수가 적습니다.
수행 시간이 길어집니다.