자바나 파이썬 으로 작성한 언어는 컴퓨터가 이해하기 위해서는 저급언어로 변환되어야 한다.
이러한 저급언어에는 어셈블리어와 기계어가 있다.
기계어 : 컴퓨터가 직접 읽고 실행할 수 있는 명령어 (사람이 보기에 불편하다.)
어셈블리어 : 기계어를 사람이 이해하기 쉽게 기호나 문자로 표현한 언어이다. (기계어 보다는 이해하기 쉽지만 그래도 어렵다. 그래서 자바나 파이썬 같은 언어가 나오기 시작했다.)
저급언어는 명령어들로 구성되어 있는데 어떻게 생겼는지 알아볼 필요가 있다.
명령어의 구조
| 더하여라 (수행할 연산) | 100 (연산에 사용될 데이터) | 메모리 100번지 (연산에 사용될 데이터의 주소값) |
이런식으로 명령어(수행연산)와 데이터 혹은 연산에 사용될 데이터가 저장된 주소값이 저장될 수 있다.
이런식을 크게 보면 연산코드 + 오퍼랜드(연산에 사용될 데이터 or 데이터가 저장된 주소값) 구조로 볼 수 있다.
아래와 같이 연산코드의 역할에 따른 종류가 있다. 명령어들을 외울 필요는 없다.
<연산코드>
➀ 데이터 전송 : 데이터 이동에 대한 연산을 한다. (메모리 저장, 데이터 이동 등)
➁ 산술/논리 연산 : 데이터를 통해 더하기/빼기/곱셈/나눗셈 등의 산술 혹은 and, OR의 논리 연산수행
➂ 제어 흐름 변경 : 실행순서를 특정 메모리 주소로 변경한다.
➃ 입출력 제어 : 특정 입출력 장치로부터 데이터 읽기, 쓰기
위처럼 굳이 데이터 자체가 아닌 주소를 표기 하는 이유 --> 명령어에서 데이터를 표현할 수 있는 크기가 제한되기 때문에
오퍼랜드 구역이 많아진다면 한 구역당 표현할 수 있는 크기가 작아져서 메모리의 주소값을 지정해준다면
해당 주소값에 해당하는 구역은 또한 일정한 크기를 가지기 때문에표현가능한 크기가 커진다.
위에서 100번지 메모리 주소를 가르키면 100번지 구역 또한 범위가 존재한다.
이런식으로 연산에 사용될 데이터가 저장된 위치를 유효 주소라고 한다.
명령어 주소 지정 방식
연산에 사용할 데이터가 저장된 위치를 찾는 방법 OR 유효주소를 찾는 방법 , 여러가지 방법들이 존재한다.
➀ 즉시 주소 지정 방식
연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시한다.
가장 간단하지만 표현 가능한 데이터의 크기가 작다 하지만 메모리를 뒤지지 않으므로 속도가 빠르다.
| 연산코드 | 연산에 사용할 데이터 (100) |
➁ 직접 주소 지정 방식
오퍼랜드 필드에 유효주소를 직접적으로 명시한다.
유효 주소를 표현할 수 있는 크기가 연산 코드만큼 줄어든다.

➂ 간접 주소 지정 방식
오퍼랜드 필드에 유효 주소의 주소를 명시한다.
앞선 주소 지정 방식들에 비해 속도가 느리다.

➃ 레지스터 주소 지정 방식
연산에 사용할 데이터가 저장된 레지스터를 명시한다.메모리에 접근하는 속도보다 레지스터에 접근하는 것이 빠르다.

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

'개인공부 > 컴퓨터 구조와 운영체제' 카테고리의 다른 글
| [컴퓨터 구조와 운영체제] 명령어 사이클과 인터럽트 (0) | 2025.01.01 |
|---|---|
| [컴퓨터 구조와 운영체제] CPU의 내부 구성 - 레지스터 (0) | 2025.01.01 |
| [컴퓨터 구조와 운영체제] ALU와 제어장치 (0) | 2025.01.01 |
| [컴퓨터 구조] 이진법과 십육진법 및 문자집합과 인코딩 (2) | 2025.01.01 |
| [컴퓨터 구조와 운영체제] 컴퓨터구조 (0) | 2025.01.01 |