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

명령어의 구조

EnoughTT 2023. 10. 16. 14:59

명령어의 구조

 

연산코드와 오퍼랜드

'무엇을 대상으로, 어떤 작동을 수행하라'는 구조로 되어 있음

 

 

명령어

  • 연산 코드 (연산자): 명령어가 수행할 연산
  • 오퍼랜드 (피연산자): 연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치

 

연산 코드 오퍼랜드

 

 

오퍼랜드

  • 0-주소 명령어: 오퍼랜드가 하나도 없는 명령어
  • 1-주소 명령어: 오퍼랜드가 하나인 명령어
  • 2-주소 명령어: 오퍼랜드가 두 개인 명령어
  • 3-주소 명령어: 오퍼랜드가 세 개인 명령어

 

 

연산 코드

  • 데이터 전송
    • MOVE: 데이터를 옮겨라
    • STORE: 메모리에 저장하라
    • LOAD (FETCH): 메모리에서 CPU로 데이터를 가져와라
    • PUSH: 스택에 데이터를 저장하라
    • POP: 스택의 최상단 데이터를 가져와라
  • 산술/논리 연산
    • ADD/SUBTRACT/MULTIPLY/DIVIDE: 덧셈/뺄셈/곱셈/나눗셈을 수행하라
    • INCREMENT/DECREMENT: 오퍼랜드에 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: 입출력 장치의 상태를 확인하라

 

 

주소 지정 방식

명령어의 오퍼랜드 필드에 메모리나 레지스터의 주소를 담는 경우가 많음

 

유효 주소: 연산 코드에 사용할 데이터가 저장된 위치, 연산의 대상이 되는 데이터가 저장된 위치

주소 지정 방식: 오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때 연산에 사용할 데이터 위치를 찾는 방법

 

 

즉시 주소 지정 방식

연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식, 가장 간단한 형태의 주소 지정 방식

  • 장점: 연산에 사용할 데이터를 메모리나 레지스터로부터 찾는 과정이 없기 때문에 빠름
  • 단점: 표현할 수 있는 데이터의 크기가 작아짐

 

직접 주소 지정 방식

오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식

 

간접 주소 지정 방식

유효 주소의 주소를 오퍼랜드 필드에 명시하는 방식

 

레지스터 주소 지정 방식

직접 주소 지정 방식과 비슷하게 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시하는 방법

 

레지스터 간접 주소 지정 방식

연산에 사용할 데이터를 메모리에 저장하고, 그 주소 (유효 주소)를 저장한 레지스터를 오퍼랜드 필드에 명시하는 방법