4. 명령어의 구조

알파로그·2023년 11월 2일
0

Computer Science

목록 보기
16/17

✏️ 기본 구조

  • 명령어는 하나의 연산 코드와, 하나 이상의 오퍼랜드를 포함하고있다.

📍 오퍼랜드

  • 연산에 사용할 데이터, 또는 저장된 주소
    • 하나의 명령어에서 표현할 수 있는 데이터의 크기의 한계로 인해 데이터보다는 주로 저장된 주소를 포함한다.
    • 이러한 이유로 오퍼랜드를 주소 필드 라고도 부르기도 하고,
      해당 주소를 유효 주소 라고 부른다.

📍 연산 코드

  • 수행할 연산을 뜻한다.
  • CPU 마다 연산 코드의 종류와 갯수는 다양하지만 대표적으로 4가지를 뽑을 수 있다.
    1. 데이터 전송
      • 레지스터 내, CPU 와 메모리간 데이터 이동, 저장
      • 자료구조 형태의 데이터 저장과 조회
    2. 산술/논리 연산
      • 사칙연산
      • and, or, not 연산
      • true, false 연산
    3. 제어 흐름 변경
      • 특정 주소로 실행순서 옮기기
      • return 주소를 저장한 채 특정 주소로 실행 순서 옮기기
      • return 주로소로 돌아가기
      • 프로그램 실행 중지
    4. 입출력 제어
      • 입출력 장치로부터 데이터 읽기, 쓰기, 시작, 상태 확인

✏️ 명령어 주소 지정 방식

  • 연산에 사용할 데이터가 지정된 위치를 찾는 방법
    • 유효 주소 를 찾는 방법이다.

📍 즉시 주소 지정 방식

  • 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식
  • 가장 간단한 형태의 주소 지정방식
  • 명령어의 크기의 한계 때문에 데이터의 크기가 작아지지만, 가장 속도가 빠르다.

📍 직접 주소 지정 방식

  • 오퍼랜드 필드에 메모리의 유효 주소를 직접적으로 명시
  • 즉시 주소 지정 방식보다 명령어 크기 효율이 좋지만 역시 명령어의 크기가 유효주소를 표현할 수 있는 크기만큼 줄어든다.

📍 간접 주소 지정 방식

  • 메모리에 유효 주소들을 저장하고 그 주소를 오퍼랜드 플드에 입력하는 방식
  • 명령어 크기를 가장 효율적으로 사용할 수 있지만 위 3가지 방법중 가장 속도가 느리다.

📍 레지스터 주소 지정 방식

  • 연산에 사용할 데이터를 레지스터에 저장하고 오퍼렌드에 레지스터의 유효 주소를 입력하는 방식
  • 메모리에서 조회하는 것 보다 레지스터에서 조회하는 게 더 빠르기 때문에 직접 주소 지정 방식보다 속도가 빠르다.

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

  • 연산에 사용할 데이터를 메모리에 저장하고,
    레지스터에 해당 유효 주소를 저장하고,
    레지스터 주소를 오퍼랜드에 입력하는 방식
profile
잘못된 내용 PR 환영

0개의 댓글