컴퓨터구조+운영체제

명령어

chojdsj 2023. 11. 24. 23:02
728x90

 

 

 

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

 

 

- 개발자들이 고급 언어로 작성한 소스 코드는 결국 저급 언어로 변환되어 실행되는데, 여기에는 크게 두가지 방식이 있다. 컴파일 방식과 인터프리터 방식이 있다.

 

* 컴파일 언어

 

- 컴파일 언어는 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어이다.

 

- 대표적 컴파일 언어로는 C가 있다.

 

- 컴파일 언어로 작성된 소스코드는 코드 전체가 저급 언어로 변환되는 과정을 거치는데, 이 과정을 컴파일이라고 한다. 그리고 컴파일을 수행해주는 도구를 컴파일러 라고 한다.

 

- 컴파일러를 통해 저급 언어로 변환된 코드를 목적 코드 라고 한다.

 

 

 

 

* 인터프리터 언어

 

- 인터프리터 언어는 인터프리터에 의해 소스코드가 한 줄씩 실행되는 고급 언어입니다. 대표적인 언어로는 Python이 있다.

 

- 소스코드를 한 줄씩 저급 언어로 변환하여 실행해 주는 도구를 인터프리터라고 한다. 인터프리터 언어는 소스 코드를 한 줄씩 실행하기 때문에 소스 코드 전체를 저급 언어로 변환하는 시간을 기다릴 필요가 없다.

 

- 소스 코드 내에 오류가 하나라도 있으면 컴파일이 불가능했던 컴파일 언어와는 달리, 인터프리터 언어는 소스 코드를 한 줄씩 실행하기 때문에 소스 코드 N번째 줄에 문법 오류가 있더라도 N-1 번째 줄 까지는 올바르게 수행된다.

 

 

 

 

 

연산코드와 오퍼랜드

 

 

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

 

- 명령어가 수행할 연산을 연산코드라 하고, 연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치를 오퍼랜드라고 한다.

ex) 연산코드 ( 더해라, 빼라, 저장해라) , 오퍼랜드 ( 100과 120을, 1번안의 값과 2번안의 값, 1을 10번에 )

 

 

 

 

* 오퍼랜드

 

- 오퍼랜드 필드에는 숫자와 문자등을 나타내는 데이터 또는 메모리나 레지스터 주소가 올 수 있다.

 

- 그래서 오퍼랜드 필드를 주소 필드라고도 부른다.

 

- 오퍼랜드는 명령어 안에 없을 수도 있고, 한 개만 있을 수도 있고, 두개 또는 여러개가 있을 수도 있다.

 

 

 

* 연산코드

 

- 가장 기본적인 연산코드 유형은 크게 네가지로 나눌 수 있다.

 

1) 데이터 전송

2) 산술/논리 연산

3) 제어 흐름 변경

4) 입출력 제어

 

- 연산코드에 사용할 데이터가 저장된 위치, 즉 연산의 대상이 되는 데이터가 저장된 위치를 유효 주소 라고 한다.

 

 

 

 

 

 

스택과 큐

 

 

 

* 스택

 

- 스택이란 한쪽 끝이 막혀있는 통과 같은 저장 공간입니다. 한쪽 끝이 막혀 있어서 막혀있지 않은 쪽으로 데이터를 차곡차곡 저장하고, 저장한 자료를 빼낼 때는 마지막으로 저장한 데이터부터 빼냅니다.

 

- 스택은 나중에 저장한 데이터를 가정 먼저 빼내는 데이터 관리방식(후입선출)이라는 점에서 LIFO(Last In First One) 자료구조라고도 부릅니다.

 

 

 

 

- 스택에 새로운 데이터를 저장하는 명령어가 PUSH, 스택에 저장된 데이터를 꺼내는 명령어가 POP입니다.

 

 

 

 

 

* 큐

 

- 스택과 달리 양쪽이 뚫려 있는 통과 같은 저장 공간을 큐 라고 합니다.

 

- 큐는 한쪽으로는 데이터를 저장하고 다른 한쪽으로는 먼저 저장한 순서대로 데이터를 빼냅니다.

 

- 큐는 가장 먼저 저장된 데이터부터 빼내는 데이터 관리 방식(선입선출)이라는 점에서 FIFO(First In First Out) 자료구조라고 부릅니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

명령어 병렬 처리 기법  (0) 2023.11.29
CPU 성능 향상 기법  (0) 2023.11.28
CPU의 작동 원리(명령어 사이클, 인터럽트)  (0) 2023.11.27
데이터  (0) 2023.11.22
컴퓨터 구조  (1) 2023.11.21