[CS] Exercise for Addressing Modes
Addreesing mode에 대해서 먼저 공부를 하고 문제를 풀어보세요!
[CS] Addressing Modes
Addressing mode 란 ? ? ? Operand가 memory 또는 register에 위치하는 주소를 지정하는 다양한 방법입니다. → 사용자에게 프로그래밍 다재다능성을 제공합니다. (메모리에 대한 포인터, 루프 제어를 위한
yyyeji.tistory.com
🅠) Assume LD instruction is at Address 0
LD 5
①. Direct mode
②. Indirect mode
③. Register mode
④. Register indirect mode
⑤. Immediate addressing mode
↓↓↓ Solution ↓↓↓
첫 번째 단계는 memory에서 instruction을 fetch 해온다.
CPU ← LD 5
① - 5번지에서 값을 가져온다.
② - 5번지는 가져올 값의 주소가 들어있기 때문에 5번지에서 10번지로 간다.
③ - register에 들어있는 값을 가져온다.
④ - register는 가져올 값의 주소가 들어있기 때문에 register에서 9번지로 간다.
⑤ - immediate는 값 자체를 의미하기 때문에 LD 5에서 5가 값이다.
↓↓↓ Answer ↓↓↓
① EA: 5 AC = 10
② EA: 10 AC = 20
③ EA: 5 or ? AC = 9
④ EA: 9 AC = 25
⑤ EA: 0 AC = 5
🅠) What is ther Effective Address and the Operand Value for each address mode ?
Instruction format
Opcode | Mode | Address |
①. Direct
②. Immediate
③. Indirect
④. Relative
⑤. Register
⑥. Register indirect
↓↓↓ Solution ↓↓↓
첫 번째 단계는 memory에서 instruction을 fetch 해온다.
① - 500번지에서 값을 가져온다.
② - immediate는 값 자체를 의미하기 때문에 201번지에 있는 500이 값이다.
③ - 500번지는 가져올 값의 주소가 들어있기 때문에 500번지에서 800번지로 간다.
④ - Address + PC 의 주소로 간다. 즉, 500 + 202 = 702번지이다.
⑤ - register에 들어있는 값을 가져온다.
⑥ - register는 가져올 값의 주소가 들어있기 때문에 register에서 400번지로 간다.
↓↓↓ Answer ↓↓↓
① EA: 500 AC: 800
② EA: 201 AC: 500
③ EA: 800 AC: 300
④ EA: 702 AC: 325
⑤ EA: 500 or ? AC: 400
⑥ EA: 400 AC: 700
◡̈