본문 바로가기
CS/운영체제&컴퓨터구조

명령어 고급언어와 저급언어 그리고 구조

by nothing-error 2022. 10. 25.

명령어 고급언어와 저급 언어 그리고 구조

명령어는 특정 작업을 수행하기 위한 컴퓨터 프로그램의 명령을 말하며, 각각의 프로그래밍 언어로 작성된 소스코드는 컴퓨터 내부에서 변환되어 명령어가 됩니다.

 

1. 고급언어와 저급언어

고급언어와 저급언어

위의 그림처럼 고급언어는 컴파일과 인터프리터의 2가지 방식으로 변환되어 저급 언어로 변환됩니다. 고급언어는 흔히 알고있는 프로그래밍 언어인 C, C++, 자바, 파이썬 등을 고급언어라고 합니다. 저급언어의 경우에는 기계어와 어셈블리어가 있으며 기계어 같은 경우는 0과 1로 이루어진 언어이며, 어셈블리어의 경우에는 기계어를 그마나 사람이 알아볼 수 있도록 일대일 대응이 되는 프로그래밍 언어입니다.

  고급언어에서 저급언어로 변환하는 방식에서는 2가지가 있습니다. 첫 번째는 컴파일 방식입니다. 고급언어의 소스코드를 컴파일러를 통해서 컴파일하여 목적 코드로 변환하는 방식입니다. 이때 소스코드에 문제가 있을 경우에는 코드 전체가 실행되지 않게 됩니다. 두 번째 방식은 인터프리터 방식입니다. 인터프리터 방식의 대표적인 언어는 파이썬이며, 소스코드를 한 줄씩 읽으며 실행되는데 컴파일 방식과는 다르게 중간에 문제가 발생하면 문제가 발생한 지점 전까지는 정상적으로 실행됩니다.

 

 

2. 명령어의 구조

명령어는 연산 코드와 오퍼랜드(들)로 구성됩니다. 연산 코드에는 명령의 행동이 담기며, 오퍼랜드에는 행동의 대상이 되는 '연산에 사용할 데이터' 혹은 '연산에 사용할 데이터 주소'가 담기게 됩니다. (현대의 CPU는 주소가 담김)

 

연산 코드의 종류

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

 

오퍼랜드

오퍼랜드에 연산에 사용할 데이터를 직접 담을 경우에는 명령어에서 표현할 수 있는 데이터의 크기가 제한적이게 됩니다. 그래서 오퍼랜드에는 데이터의 위치정보가 담기며, 해당 위치인 레지스터 주소나 메모리 주소의 크기만큼의 정보를 표현할 수 있게 됩니다.(데이터베이스에 그림을 직접 넣기보다는 그림의 주소를 넣는 것과 비슷하네요)

 

 

주소 지정방식

주소 지정방식은 크게 5가지 방식이 있습니다.

  • 즉시 주소 지정방식 : 바로 데이터
  • 직접 주소 지정방식 : 메모리 주소(유효 주소)
  • 간접 주소 지정방식 : 메모리 주소의 주소(즉, 메모리에 유효 주소가 들어가므로 직접 주소 방식보다 훨씬 많은 정보를 담을 수 있음)
  • 레지스터 주소 지정방식 : 레지스터 이름(직접 주소 지정방식과 동일하나 메모리 -> 레지스터 차이)
  • 레지스터 간접 주소 지정방식 : 레지스터 이름을 저장한 레지스터(간접 주소 지정방식과 동일)
유효 주소 : 연산에 사용할 데이터가 저장된 위치

 

 

 


Reference
1. 혼자공부하는 컴퓨터구조 + 운영체제
2. 위키백과 
3. 정보통신기술용어해설

'CS > 운영체제&컴퓨터구조' 카테고리의 다른 글

커널(Kernel)과 시스템 콜(Syetem call)  (0) 2022.11.02
CISC와 RISC 비교  (0) 2022.10.26
CPU의 명령어 사이클과 인터럽트  (0) 2022.10.26
CPU의 구성요소 및 작동원리  (0) 2022.10.25
컴퓨터의 구조  (0) 2022.10.25

댓글