Cheat Sheet
명령어의 구조
- 연산 코드: 명령어가 수행할 연산
- 오퍼랜드: 연산에 사용할 데이터가 저장된 위치 (또는 데이터 그 자체)
- 주소 필드라고도 부름, 명령어 안에 여러 개의 오퍼랜드가 있을 수 있음
주소 지정 방식
- 유효 주소: 연산 코드에 사용할 데이터가 저장된 위치
- 주소 지정 방식은 유효 주소를 찾는 방법
- 즉시 주소 지정 방식: 연산에 사용할 데이터 그 자체를 명시
- 직접 주소 지정 방식: 유효 주소를 명시 (메모리 주소)
- 간접 주소 지정 방식: 유효 주소의 주소를 명시
- 레지스터 주소 지정 방식: 유효 주소를 명시 (레지스터 이름)
- 레지스터 간접 주소 지정 방식: 유효 주소를 저장한 레지스터 이름을 명시 (데이터는 메모리에 저장)
명령어의 구조

- 명령어는 연산 코드와 오퍼랜드로 구성됨
- 연산 코드는 연산자, 오퍼랜드는 피연산자라고도 부름
- 연산 코드가 담기는 영역을 연산 코드 필드라고 부르고, 오퍼랜드가 담기는 영역을 오퍼랜드 필드라고 부름
연산 코드 (operation code)
- 명령어가 수행할 연산
- 연산 코드 유형 4가지
- 데이터 전송: MOVE, STORE, LOAD, PUSH, POP
- 산술/논리 연산: ADD, MULTIPLY, AND, OR, COMPARE
- 제어 흐름 변경: JUMP, HALT, CALL, RETURN
- 입출력 제어: READ, WRITE, START IO, TEST IO
- 연산 코드의 종류와 생김새는 CPU마다 다름
오퍼랜드 (operand)
- 연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치
- 많은 경우 데이터가 저장된 위치를 명시함
- 주로 메모리나 레지스터의 주소가 담기기 때문에 오퍼랜드 필드를 주소 필드라고 부름
- 오퍼랜드는 명령어 안에 하나도 없을 수도 있고, 여러 개가 있을 수도 있음
- 0-주소 명령어, 1-주소 명령어, 2-주소 명령어…
주소 지정 방식
- 유효 주소(effective address): 연산 코드에 사용할 데이터가 저장된 위치
- 주소 지정 방식(addressing mode): 연산에 사용할 데이터의 위치, 즉 유효 주소를 찾는 방법
- 오퍼랜드 필드에 연산에 사용할 데이터를 직접 명시할 경우, 표현할 수 있는 데이터의 크기가 연산 코드의 크기만큼 작아짐 (전체 크기-연산 코드 크기)
- 만약 오퍼랜드 필드 안에 메모리 주소를 담는다면, 표현할 수 있는 데이터의 크기는 하나의 메모리 주소에 저장할 수 있는 공간만큼 커짐
즉시 주소 지정 방식 (immediate addressing mode)

- 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식
- 가장 간단한 형태의 주소 지정 방식
- 연산에 저장할 데이터의 크기가 작아질 수 있지만, 속도가 빠름
- 데이터를 메모리나 레지스터에서 찾는 과정이 없기 때문에
직접 주소 지정 방식 (direct addressing mode)

- 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식
- 여전히 유효 주소를 표현할 수 있는 크기가 연산 코드의 비트 수만큼 줄어듦
간접 주소 지정 방식 (indirect addressing mode)

- 유효 주소의 주소를 오퍼랜드 필드에 명시하는 방식
- 두 번의 메모리 접근이 필요하기 때문에 앞의 방식들보다 속도가 느림
레지스터 주소 지정 방식 (register addressing mode)

- 연산에 사용할 데이터를 저장한 레지스터의 이름을 오퍼랜드 필드에 직접 명시
- 일반적으로 메모리(외부)에 접근하는 것보다 레지스터(내부)에 접근하는 속도가 더 빠름
- 표현할 수 있는 레지스터 크기에 제한이 생길 수 있음
레지스터 간접 주소 지정 방식 (register indirect addressing mode)

- 연산에 사용할 데이터를 메모리에 저장하고, 그 유효 주소를 저장한 레지스터를 오퍼랜드 필드에 명시
- 메모리에 접근하는 횟수가 한 번으로 줄어들기 때문에 간접 주소 지정 방식보다 빠름
각각의 방식이 오퍼랜드 필드에 명시하는 값
- 즉시 주소 지정 방식: 연산에 사용할 데이터
- 직접 주소 지정 방식: 유효 주소 (메모리 주소)
- 간접 주소 지정 방식: 유효 주소의 주소
- 레지스터 주소 지정 방식: 유효 주소 (레지스터 이름)
- 레지스터 간접 주소 지정 방식: 유효 주소를 저장한 레지스터 (데이터는 메모리에 저장)
출처: [3-2] 명령어의 구조
혼자 공부하는 컴퓨터 구조+운영체제 - 예스24
혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서이 책은 독학으로 컴퓨터 구조와 운영체제를 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했다. 뭘 모르는지
www.yes24.com