본문 바로가기
Study/Computer Science

컴퓨터 구조 - 명령어의 구조

by 들숨날숨흡 2023. 7. 2.
728x90
  • 명령어의 구조
    • 연산 코드 : 명령어가 수행할 연산 (=연산자)
    • 오퍼랜드 : 연산에 사용될 데이터가 저장된 위치 (=피연산자)
    • 연산 코드가 담기는 영역을 연산 코드 필드, 오퍼랜드가 담기는 영역을 오퍼랜드 필드라고 한다.
  • 오퍼랜드 (=주소 필드)
    • '연산에 사용할 데이터' 또는 '연산에 사용할 데이터가 저장된 위치'를 의미
    • 대부분의 경우에는 후자가 저장되어 메모리 주소나 레지스터 이름이 담김
    • 오퍼랜드 명령어 안에 하나도 없을 수도 있고(0-주소 명령어), 한 개만 있을 수도 있고(1-주소 명령어), 두 개(2-주소 명령어) 또는 세 개(3-주소 명령어) 등 여러 개가 있을 수 있다.
  • 연산 코드
    • 연산 코드의 종류
      1. 데이터 전송 : MOVE , STORE, LOAD(FETCH) 등
      2. 산술/논리 연산 : ADD, SUBTRACT, MULTIPLY, DIVIDE 등
      3. 제어 흐름 변경 : JUMP, HALT, CALL 등
      4. 입출력 제어 : READ(INPUT), WRITE(OUTPUT) 등
    • 명령어의 종류와 생김새는 CPU마다 다르다.
  • 주소 지정 방식
    • 연산에 사용할 데이터의 위치를 찾는 방법
    • 유효 주소 : 연산의 대상이 되는 데이터가 저장된 위치
    • 대표적인 주소 지정 방식
      1. 즉시 주소 지정 방식 : 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식
      2. 직접 주소 지정 방식 : 유효 주소를 직접 명시하는 방식
      3. 간접 주소 지정 방식 : 유효 주소의 주소를 오퍼랜드 필드에 명시하는 방식
      4. 레지스터 주소 지정 방식 : 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시하는 방식
      5. 레지스터 간접 주소 지정 방식 : 연산에 사용할 데이터를 메모리에 저장하고, 그 유효 주소를 저장한 레지스터를 오퍼랜드 필드에 명시하는 방식
728x90