Embedded System/ARM
[ARM] Addressing mode
임아톰
2021. 12. 8. 16:46
Addressing mode란
- 인스트럭션이 데이터를 처리할 때 데이터를 가져오는 방법
- 즉, 피연산자(operand)를 가져오는 방법
- 크게 direct와 indirect 방법으로 구분됨
Name | Assembler syntax | Addressing function | |
Direct | Immediate | #Value | Operand = Value |
Register | Ri | EA = Ri | |
Absolute | LOC | EA = LOC | |
Indirect | Register indirect | (Ri) | EA = [Ri] |
Index | X(Ri) | EA = [Ri] + X | |
Base with index | (Ri, Rj) | EA = [Ri] + [Rj] |
ARM의 CISC적인 측면 중 하나가 Autoincrement, autodecrement를 지원한다는 점이다.
addressing mode 중 pre-indexed with writeback과 post-index mode에서 이를 확인할 수 있다.
Pre-indexed mode
LDR Rd, [Rn, #offset] performs
Rd <- [[Rn]+offset]
LDR Rd, [Rn, Rm] performs
Rd <- [[Rn]+[Rm]]
Pre-indexed with writeback
LDR Rd, [Rn, #offset]! performs
Rd <- [[Rn]+offset]
Rn <- [Rn]+offset
Post-indexed mode
LDR Rd, [Rn], #offset performs
Rd <- [Rn]
Rn <- [Rn]+offset
반응형