컴퓨터 명령어
1. 명령어 형식
- 명령어 형식의 분류
- 오퍼랜드의 기억장소에 따른 명령어 형식
- 오퍼랜드 수에 따른 명령어 형식
기억 장소에 따른 명령어 형식
누산기를 이용하는 명령어 형식
- ADD X
AC <- AC + M[X]
- 누산기(AC)에 있는 내용과 기억장치 X번지에 있는 내용을 더해서 누산기(AC)로 전송
- LOAD X
AC <- M[X]
- 기억장치 X번지에 있는 내용을 누산기로 적재
- STORE X
M[X] <- AC
- 누산기의 내용을 기억장치 X번지에 저장
- ADD X
다중 레지스터를 이용하는 명령어 형식
- ADD R1, R2, R3
R3 <- R1 + R2
- 레지스터 R1, R2를 더해서 R3로 전송
- ADD R1, R2
R2 <- R1 + R2
- 레지스터 R1, R2를 더해서 R3로 전송
- 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
- 스택의 맨 위의 내용과 바로 아래 내용을 더해서 맨 위로 전송
- PUSH X
TOS <- M[X]
- 기억장치 주소 X번지의 내용을 TOS(맨 위)로 전송
- POP X
M[X] <- TOS
- TOS의 내용을 기억장치 주소 X번지로 전송
- ADD
주소지정방식
명령어 주소지정방식 (addressing mode)
- 프로그램 수행 시 오퍼랜드를 지정하는 방식
- 명령어의 주소 필드를 변경하거나 해석하는 규칙을 지정하는 형식
- 주소지정방식을 사용하면 명령어의 수를 줄일 수 있음
유효주소
주소지정방식의 각 규칙에 의해 정해지는 오퍼랜드의 실제 주소
상대 주소지정방식
- 유효주소를 계산하기 위해 특정 레지스터 내용에 명령어 주소필드 값을 더하는 방식
- 특정 레지스터로 프로그램 카운터(PC)가 주로 사용됨
- ex)
LDA $ADRS;
=AC <- M[ADRS+PC]
- 유효주소 = 명령어 주소부분의 내용 + PC의 내용