CS/컴퓨터구조

[컴퓨터 구조] 명령어란?

연듀 2022. 9. 7. 15:02

명령어

 

 

1. 소스코드와 명령어

 

 

고급 언어: 대부분의 프로그래밍 언어. 사람을 위한 언어. 컴퓨터가 이해할 수 없음

저급 언어: 컴퓨터가 직접 이해하고 실행할 수 있는 언어. 명령어로 이루어져 있음

 

 

고급 언어로 작성된 소스 코드가 실행되려면 반드시 저급 언어(명령어)로 변환 되어야 한다.

 

저급 언어는 두가지 종류가 있다.

기계어: 0과 1로 이루어진 명령어로 구성된 저급 언어

어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어

 

 

 

고급 언어 -> 저급 언어 변환

 

개발자들이 고급 언어로 작성한 소스 코드는 결국 저급 언어로 변환되어 실행된다.

그 방식은 크게 두가지 방식으로 나눌 수 있다.

 

 

컴파일 방식

컴파일 언어: 컴파일 방식으로 작동하는 고급 언어

컴파일: 컴파일 언어로 작성된 소스 코드 전체가 저급 언어로 변환되는 과정

컴파일러: 컴파일을 수행해 주는 도구

 

컴파일 언어로 작성된 소스 코드 전체가 컴파일러에 의해 저급 언어로 변환(컴파일)되고

컴파일 결과로 저급 언어인 목적 코드가 생성된다.

 

ex) C언어 

 

 

인터프리터 방식

인터프리터 언어: 인터프리터에 의해 소스 코드가 한줄 씩 실행되는 고급 언어

인터프리터: 소스 코드를 한 줄씩 저급 언어로 변환하여 실행해 주는 도구

 

인터프리터에 의해 소스 코드가 한줄 씩 실행 된다.

한 줄 한 줄씩 저급 언어로 해석하며 실행해야 하기 때문에 일반적으로 컴파일 언어보다 느리다. 

 

ex) 파이썬

 

 

 

 

 

2. 명령어의 구조

 

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

 

연산 코드 

명령어가 수행할 연산(연산자).

데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어 이렇게 크게 네가지로 유형을 나눌 수 있다.

 

오퍼랜드

연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치(피연산자)

일반적으로 데이터를 직접 명시하기 보다는 연산에 사용할 데이터가 저장된 위치, 즉 메모리 주소나 레지스터 이름이 담긴다. 오퍼랜드를 주소 필드라고 부르기도 한다. 

 

 

주소 지정 방식

 

오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때 연산에 사용할 데이터 위치를 찾는 방법을 주소 지정 방식이라고 한다.

유효 주소를 찾는 방법이라고도 말할 수 있다.

 

유효 주소: 연산에 사용할 데이터가 저장된 위치

 

 

즉시 주소 지정 방식: 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시

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

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

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

레지스터 간접 주소 지정 방식: 유효 주소를 저장한 레지스터를 오퍼랜드 필드에 명시