(명령어 형식)
주소 필드의 개수 에 따라
- 단일 누산기 구조
- 범용 레지스터 구조
- 스택 구조
로 나뉜다.
(0-주소 명령 형식(스택 구조))
연산자 코드(op-code) 만 존재하고 주소가 없는 형식이다.
이 형식은 피연산자(operand) 를 스택(stack) 에 보관한다.
D = A + B * C
식을 0-주소 명령 형식으로 나타내면
PUSH A
PUSH B
PUSH C
MUL
ADD
POP D
위의 명령어가 수행되면서 스택은
위의 사진과 같이 변하게 된다.
(1-주소 명령 형식(단일 누산기 구조))
연산자 코드(op-code) 와 피연산자(operand) 1개로만 이루어진 형식이다.
주기억 장치 내의 데이터와 AC 레지스터 내의 데이터로 연산이 이루어진다.
D = A + B * C
식을 1-주소 명령 형식 으로 나타내면
LOAD B # AC <- B
MUL C # AC <- AC * C
ADD A # AC -< AC + A
STORE D # D <- AC
(2-주소 명령 형식(범용 레지스터 구조))
연산자 코드(op-code) 와 피연산자(operand) 2개로 이루어진 형식이다.
연산 결과를 두 피연산자가 가르키는 주소 중 한 곳에 저장한다.
D = A + B * C
식을 2-주소 명령 형식 으로 나타내면
LOAD R, B # R <- B
MUL R, C # R <- R * C
ADD R, A # R <- R + A
STORE R, D # D <- R
(3-주소 명령 형식)
연산자 코드(op-code) 와 2개의 피연산자(operand) 와 결과 주소 로 이루어진 형식이다.
인스트럭션을 수행하기 위해 피연산자를 최소 3번이나 접근해야해서 수행 기간이 길어진다.
D = A + B * C
식을 3-주소 명령 형식 으로 나타내면
MUL R, B, C # R <- B * C
ADD D, R, A # D <- R + A
'컴퓨터 > 프로그래밍 관점에서 바라보는 컴퓨터구조' 카테고리의 다른 글
책 읽기 끝 (0) | 2021.08.12 |
---|---|
명령어 집합 (3) (0) | 2021.08.12 |
명령어 집합 (0) | 2021.08.11 |
기계어와 어셈블리 언어 (4) (0) | 2021.08.11 |
기계어와 어셈블리 언어 (3) (0) | 2021.08.09 |