728x90
주소 지정 방식은 CPU가 메모리에 접근할 때, 데이터를 저장하거나 읽어오는 메모리의 위치(주소)를 어떻게 결정하는지를 정의하는 방식입니다. 다양한 주소 지정 방식이 존재하며, 각각은 특정한 목적에 맞게 사용됩니다. 아래에서 주요 주소 지정 방식들에 대해 자세히 설명드리겠습니다.
1. 직접 주소 지정 방식 (Direct Addressing Mode)
- 설명: 명령어에 메모리 주소가 바로 포함되어 있어서, 해당 주소에 저장된 데이터를 직접 참조하는 방식입니다.
- 예시: MOV A, [5000h] → 5000h 주소에 저장된 데이터를 A 레지스터로 이동.
- 장점: 간단하고 빠르지만, 주소 범위에 한계가 있을 수 있습니다.
2. 간접 주소 지정 방식 (Indirect Addressing Mode)
- 설명: 명령어에 주어진 주소가 실제 데이터가 저장된 주소를 가리키는 포인터(주소)를 포함하고 있습니다. 즉, 명령어에 포함된 주소는 실제 데이터가 저장된 주소를 알려주는 메모리 위치입니다.
- 예시: MOV A, [BX] → BX 레지스터에 저장된 값이 주소가 되어 해당 주소의 데이터를 A 레지스터로 이동.
- 장점: 주소를 동적으로 변경할 수 있어 유연하게 사용할 수 있습니다.
3. 즉시 주소 지정 방식 (Immediate Addressing Mode)
- 설명: 명령어에 데이터 값 자체가 포함되어 있는 방식입니다. 메모리 주소를 사용하지 않고, 명령어에 바로 데이터를 포함시켜 실행합니다.
- 예시: MOV A, #10 → A 레지스터에 10이라는 값(데이터)을 직접 이동.
- 장점: 데이터 값을 직접 사용할 수 있어서 빠르고 효율적입니다.
4. 레지스터 주소 지정 방식 (Register Addressing Mode)
- 설명: 명령어에서 레지스터를 주소로 사용하여 데이터를 읽거나 쓰는 방식입니다. 메모리 주소를 사용하지 않고, CPU 내부의 레지스터 간에 데이터를 이동합니다.
- 예시: MOV A, B → B 레지스터의 값을 A 레지스터로 이동.
- 장점: 빠르고 효율적인 데이터 전송이 가능합니다.
5. 기타 주소 지정 방식
- 베이스 레지스터 주소 지정 방식 (Base Register Addressing Mode): 기본 주소(base address)를 나타내는 레지스터에 오프셋을 더하여 실제 메모리 주소를 계산하는 방식입니다. 주로 동적 메모리 관리에 사용됩니다.
- 예시: MOV A, [BX + SI] → BX 레지스터와 SI 레지스터의 값을 더한 주소에서 데이터를 읽어 A 레지스터로 이동.
- 인덱스 주소 지정 방식 (Indexed Addressing Mode): 기본 주소에 인덱스 값을 더하여 실제 주소를 계산하는 방식입니다.
- 예시: MOV A, [BX + 04] → BX 레지스터의 값에 04를 더한 주소에서 데이터를 읽어 A 레지스터로 이동.
- 스택 주소 지정 방식 (Stack Addressing Mode): 데이터를 스택에 푸시(push)하거나 팝(pop)하는 방식입니다. 스택은 LIFO(Last In First Out) 구조를 가지며, 주로 함수 호출 시 사용됩니다.
- 예시: PUSH AX → AX 레지스터의 값을 스택에 푸시.
6. 상위 주소 지정 방식 (Higher Addressing Modes)
- 디스크 주소 지정 방식 (Disk Addressing Mode): 특정 외부 장치나 메모리 주소와 관련된 정보를 처리하는 방식입니다. 컴퓨터 시스템에서 보통 이 방식을 활용하기 위해서는 I/O 매핑이나 메모리 매핑된 장치를 사용합니다.
- 예시: 메모리 맵드 I/O 방식에서 디바이스와 직접적으로 데이터를 주고받는 방식.
7. 절대 주소 지정 방식 (Absolute Addressing Mode)
- 설명: 주소를 명령어 자체에서 직접 지정하는 방식입니다. 직접 주소가 명령어에 포함되어 있으며, 해당 주소를 그대로 사용합니다.
- 예시: MOV A, [3000h] → 3000h 주소에서 데이터를 A 레지스터로 이동.
주소 지정 방식의 차이점
주소 지정 방식 | 설명 | 장점 | 단점 |
직접 주소 지정 | 주소가 명령어에 포함되어 있음 | 간단하고 빠름 | 메모리 주소가 한정되어 있음 |
간접 주소 지정 | 주소에 포인터를 사용 | 동적 메모리 관리 가능, 유연함 | 속도가 느릴 수 있음 |
즉시 주소 지정 | 명령어에 데이터 값 포함 | 빠르고 효율적 | 데이터 크기와 범위에 제한이 있을 수 있음 |
레지스터 주소 지정 | CPU 내부의 레지스터 사용 | 빠르고 효율적인 데이터 전송 | 데이터 크기가 제한적일 수 있음 |
스택 주소 지정 | 스택에 푸시하거나 팝하는 방식 | 함수 호출 및 반환 시 유용함 | 스택을 관리하는 것이 복잡할 수 있음 |
결론
주소 지정 방식은 CPU와 메모리 간의 상호작용을 정의하며, 각 방식은 특정한 목적과 상황에서 적합하게 사용됩니다. 정보처리 기능사 시험에서는 각 주소 지정 방식에 대한 정의와 그 예시를 이해하는 것이 중요합니다. 이들 방식이 어떻게 메모리와 CPU 간의 데이터 전송을 최적화하는지에 대한 이해도 시험에 큰 도움이 될 것입니다.
728x90
'컴퓨터 > 컴퓨터 시험' 카테고리의 다른 글
정보처리 기능사 - DMA(Direct Memory Access) (0) | 2025.02.06 |
---|---|
정보처리 기능사(주소지정방식) 문제 (0) | 2025.02.05 |
2025, 컴퓨터 시험 일정 알아 보기 (0) | 2025.01.31 |
정보처리 기능사(채널:Channel) 문제 예시 (1) | 2025.01.06 |
정보처리 기능사(통신 프로토콜 : Communication Protocol) (0) | 2025.01.02 |