더북(TheBook)

3.2.2 간접 주소 지정

간접 주소 지정 방식(indirect addressing mode)은 명령어에 데이터가 있는 실제 메모리 주소를 직접 포함하지 않고, 대신 메모리 내 다른 위치를 가리키는 포인터를 사용합니다. CPU는 이 포인터를 통해 간접적으로 데이터에 접근합니다.

예를 들어 다음과 같은 명령어가 있다고 가정해 봅시다.

코드

LOAD A, (2000)

괄호 내 2000은 메모리 주소를 가리키는데, 이는 실제 데이터가 저장된 위치를 직접 나타내는 것이 아니라 메모리 주소 2000에 저장된 값을 다시 메모리 주소로 사용한다는 것을 의미합니다. 명령어를 좀 더 자세히 살펴볼까요?

➊ 명령어 LOAD A, (2000)에 따라 메모리 주소 2000을 확인합니다.

➋ 메모리 주소 2000에서 3000이라는 값을 가져옵니다. 이때 3000은 데이터 값이 아니라 메모리 주소를 의미합니다.

➌ 이제 CPU는 3000이라는 메모리 주소로 가서 실제 데이터를 가져옵니다.

➍ 그리고 그 데이터를 레지스터 A로 가져옵니다.