본문 바로가기
~ 2024.03/컴퓨터 구조 + 운영체제

[컴퓨터 구조] 명령어

by Monett 2024. 1. 3.
반응형

혼자 공부하는 컴퓨터 구조 + 운영체제(강민철 저, 한빛미디어)를 공부하며 내용을 정리한 글 입니다.
현재 블럭의 내용은 작성자의 의견 혹은 생각이며, 틀린 내용이 있을 수 있습니다. 지적 감사드립니다.

 

고급 언어와 저급 언어

  • 고급 언어 : 사람을 위한 언어
  • 저급 언어 : 컴퓨터가 직접 이해하고 실행 가능
    • 기계어 : 0과 1로 이루어짐
    • 어셈블리어 : 기계어를 읽기 쉽게 번역한 언어

컴파일 언어와 인터프리터 언어

  • 컴파일 언어 : 컴파일러에 의해 소스코드 전체가 변환되며, 변환된 코드는 저급언어로 목적코드(object code)라고 한다. C언어 등이 있다.
  • 인터프리터 언어 : 인터프리터에 의해 한 줄 씩 변환되어 실행되며 파이썬 등이 있다.

목적 코드 파일과 실행 파일은 같지 않다. 외부 기능과 연결짓는 과정인 링킹이 필요하다.


연산코드와 오퍼랜드

명령어는 연산 코드와 오퍼랜드로 구성된다.

  • 연산 코드 : 명령어가 수행할 연산
  • 오퍼랜드 : 연산에 사용할 데이터 또는 주소

연산코드에는 여러가지 종류가 있다. 대표적으로는

  • 데이터 전송
  • 산술/논리 연산
  • 제어 흐름 변경
  • 입출력 제어

오퍼랜드는 일반적으로 데이터의 위치가 오고, 주소필드라고 부르기도 한다. 명령어의 오퍼랜드 수에 따라 0-주소명령어, 1-주소명령어, 2-주소명령어, 3-주소명령어라고 부른다.

주소 지정 방식

명령어는 연산코드와 오퍼랜드 필드로 이루어진다. 

명령어의 크기가 한정되어있기 때문에, 오퍼랜드에 값 대신 주소를 자주 사용한다.

연산코드에 사용할 데이터(피연산자)가 저장된 주소를 유효주소라고 한다.

 

주소 지정 방식은 유효주소를 찾는 방식이다.

  • 즉시주소지정방식 : 데이터를 오퍼랜드에 직접 명시
  • 직접주소지정방식 : 유효주소를 오퍼랜드 필드에 명시
  • 간접주소지정방식 : 유효주소의 주소를 명시
  • 레지스터주소지정방식 : 데이터를 레지스터에 저장하고, 레지스터의 주소를 명시
  • 레지스터간접주소지정방식 : 데이터는 메모리에, 주소는 레지스터에 저장한 후 레지스터의 주소를 명시
반응형