본문 바로가기
Embedded System/ARM

[ARM] Addressing mode

by 임아톰 2021. 12. 8.

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
반응형

'Embedded System > ARM' 카테고리의 다른 글

[ARM] Operating modes와 Exceptions  (0) 2021.12.08
[ARM] conditional execution이란  (0) 2021.10.01