ARM Assembly] 메모리 연산

MySprtlty·2022년 12월 25일
0

ARM Assembly

목록 보기
3/10
post-thumbnail

🏷️LDR

  • 메모리에서 레지스터로 데이터를 가져오는 Load연산이다.
    • 🖇️cf. LDR stands for Load to Register.
  • 또한, 레지스터에 immediate값을 저장할 때도 사용된다.
    • 🖇️cf. MOV보다 큰 범위의 immediate값을 지정할 수 있다는 차이점이 존재한다.
  • LDR명령에서만 특별히 immediate값을 명시할 때, #대신 =가 사용된다.
  • 🔍ex)
    LDR RO, =0x1234: immediate 0x1234값을 R0에 저장

🏷️STR

  • 레지스터의 값을 메모리에 저장하는 Store연산이다.
    • 🖇️cf. STR stands for Store.

🏷️Indirect Addressing Mode

  • ARM의 주소 지정 모드 중 간접 주소 지정이 존재한다.
  • []를 사용한다.
  • C언어의 포인터에 사용되는 간접 지정 연산자(*)를 생각하면 된다.
  • 🔍ex)
    STR R0, [R1]: R1에 저장되어 있는 값을 주소로서 참조한 메모리 공간에, R0의 값을 저장한다.
    LDR R0, [R1]: R1에 저장되어 있는 값을 주소로서 참조한 메모리 공간에 존재하는 값을, R0로 로드한다.
  • 🖇️cf. LDR R0, [0x1234]처럼 사용할 수는 없다.

0개의 댓글