CS지식/컴퓨터구조

컴퓨터구조 Ch.3 명령어

뮤츠 2023. 1. 9. 00:30
  • 소스 코드와 명령어
    • 고급언어와 저급언어
      • 고급언어 : 사람을 위한 프로그래밍 언어
      • 저급언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어
        • 기계어 : 0과 1의 명령어 비트로 이루어진 언어
        • 어셈블리어 : 기계어를 읽기 편한 형태로 번역한 언어
    • 컴파일과 인터프리터
      • 컴파일
        • 소스 코드 전체가 컴파일러를 통해 저급 언어로 변환되는 과정

      • 인터프리터
        • 소스 코드를 한 줄씩 저급 언어로 변환하여 실행해주는 도구
        • 일반적으로 컴파일 언어보다 느림.

    • 목적 파일 vs 실행 파일
      • 목적 파일 : 목적코드(컴파일러를 통해 전환된 저급 언어)로 이루어진 파일
      • 실행 파일 : 실행코드로 이루어진 파일 (대표적으로 윈도우에서 .exe 확장자)
      • 링킹 : 목적 파일과 실행 파일을 연결시키는 작업.

  • 명령어의 구조
    • 연산 코드와 오퍼랜드
      • 연산 코드 : 명령어가 수행할 연산
      • 오퍼랜드 : 연산에 사용할 데이터 혹은 데이터가 저장된 위치 (주로 메모리 주소나 레지스터 이름이 담겨 주소 필드라 불리기도 함)
      • 각 영역은 연산 코드 필드, 오퍼랜드 필드로 구성
      • 오퍼랜드의 갯수에 따라 0~3-주소 명령어로 불린다.

    • 연산 코드
      • 연산 코드의 기본적인 네가지 유형
      • 데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어

  • 주소 지정 방식
    • 오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때 연산에 사용할 데이터의 위치를 찾는 방법.
    • 즉시 주소 지정 방식
      • 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식. 데이터의 크기가 작은 대신, 연산에 사용할 데이터를 검색하는 과정이 없어 가장 빠르다.

    • 직접 주소 지정 방식
      • 오퍼랜드 필드에 유효 주소를 직접 명시하는 방식.

    • 간접 주소 지정 방식
      • 유효주소의 주소를 오퍼랜드 필드에 방식. 유효주소의 범위가 더 넓은 대신, 메모리 접근이 두 번 필요하여 일반적으로 느린 방식.

    • 레지스터 주소 지정 방식
      • 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시하는 방식.
      • 일반적으로 CPU 외부에 있는 메모리 접근보다 CPU 내부에 있는 레지스터 접근이 더 빠르다.
      • 표현할 수 있는 레지스터 크기에 제한이 생길 수 있음.

    • 레지스터 간접 주소 지정 방식
      • 연산에 사용할 데이터를 메모리에 저장하고, 그 유효 주소를 저장한 레지스터를 오퍼랜드 필드에 명시하는 방법.
      • 간접 주소 지정 방식과 비슷하지만, 메모리에 접근하는 횟수가 1회.

 

참고 : 혼자 공부하는 컴퓨터 구조 + 운영체제 (강민철 저)