computer science/computer architecture
[오늘 CS] 컴퓨터 구조 - 명령어의 구조
nani-jin
2024. 3. 28. 11:13
컴퓨터는 명령어를 처리하는 기계다. 그렇다면 명령어는 어떤 구조일까?
명령어의 구조
- 명령어는 크게 연산 코드와 오퍼랜드로 이루어져 있음
- 연산 코드
- 명령어가 수행할 연산
- 연산 유형은 크게 4가지로, 1) 데이터 전송 2) 산술/논리 연산 3) 제어 흐름 변경 4) 입출력 제어
- 오퍼랜드
- '연산에 사용할 데이터' 또는 '연산에 사용할 데이터가 저장된 위치(메모리 주소 또는 레지스터 주소)'
- 오퍼랜드는 명령어 안에 하나도 없을 수도 있고(0-주소 명령어), 여러 개가 있을 수도 있음(1-주소 명령어, 2-주소 명령어 ...)
오퍼랜드의 주소 지정 방식
- 오퍼랜드는 데이터를 담거나 메모리 혹은 레지스터의 주소를 담는다
- 그런데 왜 데이터를 직접 담지 않고 주소를 담을까?
- 바로 명령어 길이 때문이다. 데이터를 직접 담으려면 하나의 명령어가 n비트로 구성되어 있을때, 오퍼랜드에 가장 많은 공간을 할당할 수 있는 1-주소 명령어도 n-m비트만 담을 수 있다
- 하지만 주소를 담으면 담을 수 있는 정보의 가짓수가 확 커진다!😀
- 이렇듯 오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때 연산에 사용할 데이터 위치를 찾는 방법을 주소 지정 방식이라고 하며, 여러 방식이 있다
- 즉시 주소 지정 방식
- 데이터를 오퍼랜드에 직접 명시
- 직접 주소 지정 방식
- 메모리의 유효 주소를 오퍼랜드에 직접 명시
- 간접 주소 지정 방식
- 메모리의 유효 주소의 주소를 오퍼랜드에 명시
- 레지스터 주소 지정 방식
- 데이터를 저장한 레지스터를 오퍼랜드에 직접 명시
- 레지스터 간접 주소 지정 방식
- 데이터를 메모리에 저장하고, 그 유효 주소를 저장한 레지스터를 오퍼랜드에 명시
- 즉시 주소 지정 방식
[출처] 혼자 공부하는 컴퓨터 구조 + 운영체제