CS/컴퓨터 구조

[컴퓨터 구조] 명령어의 구조

초오오이 2024. 11. 11. 21:07

 


 

1. 명령어의 구조

명령어의 형태

  • 연산코드: 수행할 연산(이미지에서 붉은색 배경에 해당)
  • 오퍼랜드: 연산에 사용될 데이터 혹은 연산에 사용될 데이터가 저장된 위치(이미지에서 흰색 부분에 해당)

 

2. 오퍼랜드(Operand, 피연산자)

  • 오퍼랜드는 연산에 사용될 데이터 혹은 연산에 사용될 데이터가 저장된 위치가 저장된다.
  • 오퍼랜드에 값이 담기는 공간을 오퍼랜드 필드라고 하며, 오퍼랜드 필드에는 연산에 사용될 데이터가 저장된 위치(메모리 주소, 레지스터 위치 등)가 주로 담기게 된다. 때문에 오퍼랜드 필드를 주소 필드라고 부르기도 한다.
  • 오퍼랜드가 없는(0-주소 명령어) 경우도 있으며 오퍼랜드가 1개 이상인 경우도 있다.

 

3. 연산코드

  • CPU 마다 각기 다른 연산코드를 가지고 있지만 대부분 아래 공통적인 연산코드를 가진다.
데이터 전송 MOVE 데이터를 옮겨라(보통 레지스터에서 다른 레지스터로 이동)
STORE 메모리에 저장하라
LOAD(FETCH) 메모리에서 CPU로 데이터를 가져와라
PUSH 스택에 데이터를 저장하라
POP 스택의 최상단 데이터를 가져와라
산술/논리 연산 ADD / SUBTRACT / MULTPLY / DIVIDE 사칙연산
INCREMENT / DECREMENT 오퍼랜드에 1 더하라/오퍼랜드에 1을 빼라
AND / OR / NOT AND, OR, NOT 연산을 수행하라
COMPARE 두개의 숫자 또는 true/false 값을 비교해라
 제어 흐름 변경 JUMP 특정 주소로 실행 순서를 옮겨라
CONDITIONAL JUMP 조건에 부합할 때 특정 주소로 실행 순서를 옮겨라
HALT 프로그램 실행을 멈춰라
CALL 되돌아올 주소를 저장한 채 특정 주소로 실행 순서를 옮겨라
RETURN CALL을 호출할 때 저장했던 주소로 돌아가라
입출력 제어 READ (INPUT) 특정 입출력 장치로부터 데이터를 읽어라
WRITE(OUTPUT) 특정 입출력 장치로 데이터를 써라
START IO 입출력 장치를 시작하라
TEST IO 입출력 장치의 상태를 확인하라

 

 

 

 

본 내용은 아래 강의를 수강하고 작성한 포스팅입니다.

혼자 공부 하는 컴퓨터 구조 + 운영체제