1. 서론
컴퓨터 시스템의 효율성을 결정짓는 핵심은 CPU가 필요한 데이터에 얼마나 빠르고 정확하게 접근하느냐에 달려 있다. 프로그램이 실행되는 과정에서 명령어는 끊임없이 메모리와 레지스터 사이를 오가며 데이터를 처리한다. 이때 데이터의 위치를 지정하는 방식인 '주소지정방식'은 시스템 프로그래밍의 기초이자 최적화의 정수다. 하드웨어의 물리적 한계를 소프트웨어적 설계로 극복하는 이 메커니즘을 이해하지 못하면, 진정한 의미의 저수준 최적화는 불가능에 가깝다. 본 리포트에서는 현대 컴퓨팅의 근간을 이루는 주소지정방식의 체계를 심도 있게 분석하고 각 방식의 실질적인 활용 사례를 살펴본다.
2. 본론
주소지정방식은 데이터가 위치한 장소와 접근 경로에 따라 크게 즉시 주소지정, 레지스터 주소지정, 메모리 주소지정으로 분류된다. 각 방식은 처리 속도와 유연성 측면에서 뚜렷한 장단점을 지닌다.
연산 속도의 극대화, 즉시 및 레지스터 방식
즉시 주소지정(Immediate Addressing)은 별도의 메모리 참조 없이 명령어 내에 실제 데이터 값을 직접 포함하는 방식이다. 예컨대 'MOV AX, 05H'와 같이 상수를 직접 대입할 때 사용되며 속도가 매우 빠르다. 레지스터 주소지정(Register Addressing)은 CPU 내부의 고속 저장소인 레지스터에 접근한다. 'ADD AX, BX'처럼 레지스터 간 연산을 수행하므로 메모리 버스를 사용하지 않아 효율적이다.
데이터 접근의 유연성, 메모리 주소지정 방식
메모리 주소지정은 데이터가 주기억장치에 위치할 때 활용된다. 직접 주소지정(Direct Addressing)은 명령어에 실제 데이터의 주소를 직접 명시하는 방식이며, 간접 주소지정(Indirect Addressing)은 메모리에 저장된 주소값을 통해 실제 데이터에 도달하는 방식이다. 이는 복잡한 자료구조나 포인터 연산을 구현할 때 필수적인 유연성을 제공한다.
...이하 생략...