Post

[컴퓨터 구조] 3. 명령어

[컴퓨터 구조] 3. 명령어

Chapter3 명령어


3-1 소스 코드와 명령어

  • 고급 언어 : 사람을 위한 언어(대부분의 프로그래밍 언어)
  • 저급 언어 : 컴퓨터가 이해하고 실행할 수 있는 언어
    • 기계어 : 0과 1의 명령어 비트로 이루어진 언어
    • 어셈블리어 : 기계어를 읽기 편한 형태로 번역한 언어
  • 컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급언어 ex) C언어

image

  • 인터프리터 언어 : 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어 ex) Phython
    • 소스 코드를 한 줄씩 실행하기 때문에 N번째 줄에 문법 오류가 있어도 N-1번째 줄까지는 올바르게 수행
    • 일반적으로 컴파일 언어가 더 빠름
  • 목적 파일 : 목적 코드로 이루어진 파일
  • 링킹 : 코드간 연동되는 부분들을 연결해주는 작업
  • 링킹 작업후에 비로소 하나의 실행 파일이 만들어짐

3-2 명령어의 구조

  • 명령어 : 연산 코드와 오퍼랜드로 구성
    • 연산 코드(연산자) : 명령어가 수행할 연산
      • 데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어 이렇게 네 가지로 나눌 수 있음
    • 오퍼랜드(피연산자) : 연산에 사용할 데이터가 저장된 위치
      • 해당 필드에는 데이터가 직접 올 수도, 메모리 주소나 레지스터가 올 수도 있음
      • 0-주소 명령어 : 오퍼랜드가 하나도 없는 명령어
      • 1-주소 명령어, 2-주소 명령어, 3-주소 명령어

image

  • 오퍼랜드 필드에 메모리나 레지스터의 주소를 담는 이유는 명령어 길이 때문

image

  • 유효 주소 : 연산 코드에 사용할 데이터가 저장된 위치
  • 즉시 주소 지정 방식 : 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식

image

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

image

  • 간접 주소 지정 방식 : 유효 주소의 주소를 오퍼랜드 필드에 명시

image

  • 레지스터 주소 지정 방식 : 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시

image

  • 레지스터 간접 주소 지정 방식 : 연산에 사용할 데이터를 메모리에 저장하고, 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시

image

  • 스택 : Last In First Out(LIFO)
  • : First In First Out(FIFO)

혼자 공부하는 컴퓨터구조 + 운영체제를 통해 진행한 스터디를 정리한 내용입니다.
문제가 될시에는 수정 혹은 삭제하겠습니다.

This post is licensed under CC BY 4.0 by the author.