컴퓨터 구조
오퍼랜드와 주소 지정 방식: 컴퓨터가 데이터를 다루는 방식
Data Jun
2025. 6. 1. 12:26
컴퓨터는 명령을 실행할 때 ‘무엇을 가지고 연산할 것인가’를 알아야 합니다.
그 ‘무엇’에 해당하는 것이 바로 **오퍼랜드(Operand)**입니다.
이번 글에서는 오퍼랜드가 무엇인지, 그리고 데이터를 어디서 가져올지를 정하는 주소 지정 방식에 대해 살펴보겠습니다.
오퍼랜드란?
**오퍼랜드(Operand)**란,
- 연산에 사용될 실제 데이터 또는
- 그 데이터가 **저장된 위치(주소)**를 의미합니다.
명령어 안에는 연산 코드(opcode)와 함께, 이러한 오퍼랜드가 포함되어 있는 경우가 많습니다.
오퍼랜드의 개수에 따른 명령어 형식
오퍼랜드는 개수에 따라 다음과 같이 구성될 수 있어요:
- 0-주소 명령어: 오퍼랜드 없음 (예: RET)
- 1-주소 명령어: 오퍼랜드 1개 (예: PUSH A)
- 2-주소 명령어: 오퍼랜드 2개 (예: ADD A, B)
- 3-주소 명령어: 오퍼랜드 3개 (예: ADD A, B, C)
대표적인 연산 코드 종류
- MOVE: 데이터를 옮겨라
- STORE: 메모리에 저장하라
- LOAD: 메모리에서 가져와라
- PUSH / POP: 스택에 데이터를 저장하거나 꺼내라
이러한 연산들은 오퍼랜드가 있어야 동작합니다.
명령어 주소 지정 방식 (Addressing Modes)
컴퓨터가 연산에 사용할 데이터의 위치를 어떻게 찾는지를 정하는 방법이 바로 주소 지정 방식입니다.
대표적으로 3가지 방식이 있습니다:
✨ 즉시 주소 지정 방식 (Immediate Addressing)
- 오퍼랜드 자리에 실제 데이터 값이 바로 들어갑니다.
- 가장 간단하고 빠른 방식입니다.
- 단점: 데이터 크기가 고정되어 있어 표현 범위가 제한됨
📝 예: ADD 5 → 5라는 값을 직접 연산에 사용
직접 주소 지정 방식 (Direct Addressing)
- 오퍼랜드 자리에 메모리 주소가 들어갑니다.
- 해당 주소에 있는 데이터를 연산에 사용합니다.
📝 예: LOAD A → A번지에 있는 값을 가져옴
간접 주소 지정 방식 (Indirect Addressing)
- 오퍼랜드에 들어있는 값은 데이터가 있는 주소의 주소입니다.
- 즉, 한 번 더 메모리를 참조해야 하므로 속도는 느리지만 유연성이 높습니다.
📝 예: LOAD (A) → A번지에 적힌 주소를 따라가서 데이터를 가져옴
정리
오퍼랜드와 주소 지정 방식을 이해하면, 컴퓨터가 어떻게 명령어를 실행하고 데이터를 처리하는지 기본적인 원리를 이해할 수 있게 됩니다.
이 개념은 어셈블리어, 시스템 프로그래밍, CPU 설계 등의 기반이 되는 중요한 개념이에요!