📚CS(Computer Science)/혼공컴운

[혼공컴운] 명령어(2) - 명령어의 구조

ssseeo0 2024. 1. 2. 19:01

명령어의 구조(연산 코드와 오퍼랜드)

오퍼랜드 

  • 연산에 사용될 데이터
  • 연산에 사용될 데이터가 저장된 위치 ( = 주소필드)
  • 오퍼랜드가 없는 경우도 하나 이상인 경우도 있음 

연산 코드 

  • 수행할 연산  
  • 연산 코드 유형 4가지 (데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어)

데이터 전송

  • MOVE : 데이터를 옮겨라
  • STORE : 메모리에 저장하라
  • LOAD(FETCH) : 메모리에서 CPU로 데이터를 가져와라
  • PUSH  : 스택에 데이터를 저장하라
  • POP : 스택의 최상단 데이터를 가져와라 
스택(stack) 후입선출 데이터 관리방식 (LIFO) 
큐(queue) 선입선출 데이터 관리 방식 (FIFO)

 

산술/논리 연산 

  • ADD, SUBTRACT, MULTIPLY, DIVIDE : 덧셈, 뺄셈, 곱셈, 나눗셈
  • INCREMENT, DECREMENT : 오퍼랜드에 1을 더하라 / 빼라 
  • AND, OR, NOT 연산을 수행하라 
  • COMPARE : 두 개의 숫자 또는 TRUE / FALSE 값을 비교하라 

제어 흐름 변경 

  • JUMP : 특정 주소로 실행 순서를 옮겨라 
  • CONDITIONAL JUMP : 조건에 부합할 때 특정 주소로 실행 순서를 옮겨라 
  • HALT : 프로그램의 실행을 멈춰라 
  • CALL : 되돌아올 주소를 저장한 채 특정 주소로 실행 순서를 옮겨라 
  • RETURN : CALL을 호출할 때 저장했던 주소로 돌아가

입출력 제어

  • READ (INPUT) : 특정 입출력 장치로부터 데이터를 읽어라
  • WRITE (OUTPUT) : 특정 입출력 장치로 데이터를 써라
  • START IO : 입출력 장치를 시작하라
  • TEST IO : 입출력 장치의 상태를 확인하라 

주소 지정 방식 

  • 오퍼랜드 필드 : 사용될 데이터, 메모리, 레지스터 주소 
  • 데이터를 바로 사용하지 않는 이유 ? 명령어에서 표현할 수 있는 데이터의 크기에 제한이 있기 때문 
  • 유효 주소 : 연산에 사용될 데이터가 저장된 위치 
  • 주소 지정 방식이란 유효 주소를 찾는 방법 ! 

즉시 주소 지정 방식 

  • 사용될 데이터를 오퍼랜드 필드에 직접 명시 
  • 가장 간단한 형태의 주소 지정 방식 
  • 연산에 사용할 데이터의 크기가 작아질 수 있지만, 빠름

직접 주소 지정 방식 

  • 오프랜드 필드에 유효 주소 직접적으로 명시 
  • 유효 주소를 표현할 수 있는 크기가 연산 코드만큼 줄어듦

간접 주소 지정 방식

  • 오퍼랜드 필드에 유효 주소의 주소를 명시
  • 앞선 주소 지정 방식들에 비해 속도 느림

레지스터 주소 지정 방식

  • 연산에 사용할 데이터가 저장된 레지스터 명시 
  • CPU가 외부에 있는 메모리에 접근하는 속도보다 CPU 내부에 있는 레지스터에 접근하는 것이 빠름 

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

  • 연산에 사용할 데이터를 메모리에 저장
  • 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시