728x90

Direct / Indirect 모드

- Direct 모드 : 메모리의 주소값을 직접 지정해서 값을 가져옴

- Indirect 모드 : 메모리의 주소값에 저장된 값을 가져와서 메모리로 참조

LOAD r1, 0x10 / LOAD r1, [0x10]

 

Indirect 모드의 필요성

- 피연산자를 표현할 때 제한된 비트수로 표현해야 해서 충분히 표현하기 어려움

- 이러한 문제점을 해결하기 위해 Indirect Addressing Mode로 참조할 수 있음

 

Direct 모드의 문제점

int a = 10;		// 0x010 번지 할당
int b = 20;		// 0x100 번지 할당
int c = 0;		// 0x020 번지 할당
c = a + b;

 

- LOAD r2, 0x0100 의 경우 표현이 불가능함(source의 표현 범위를 넘음)

 

Indirect 모드로 해결

- LOAD r1, 0x0010

- MUL r0, 4, 4

- MUL r2, 4, 4

- MUL r3, r0, r2

- STORE r3, 0x0030

- LOAD r2, [0x0030]

- ADD r3, r1, r2

- STORE r3, 0x20

728x90

+ Recent posts