iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
自我挑戰組

上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐系列 第 14

[鐵人賽] Day 14 ARM 第 3 章節 A64指令集(1) -- Load/Store 指令(1)

  • 分享至 

  • xImage
  •  

今日的行程:
讀書室:17:00 - 17:30、22:25-22:50

正片開始

今日的記錄:

Load / Store instruction

A64 的 load/store 指令有不同的定址模式以及有不同指令形式,如下:

不同的定址模式

  • Base address

    • Base address: ldr Xt, [Xn]
    • Base address + Offset: ldr Xt, [Xn, $offset]
    • Base address + extension: ldr Xt, [Xn, (Xm){, extend {amount}}]
  • Indexed

    • Pre-indexed: ldr Xt, [Xn, #simm]!
    • Post-indexed: ldr Xt, [Xn], #simm
  • PC-relative: ldr Xt, label

    • pseudo LDR instruction: ldr Xt, =label

不同的指令形式

  • 不同記憶體存取大小
    • 一個 Word 以內的大小: ldr, ldrsw, ldrb, ldrsb, ldrh, ldrsh, str, strb, strh
      • non-extensible: ldur, stur, ldursw, ...
    • 多個 Word: ldp
  • exclusive memory access load/store: ldxr, ldxp, stxr, stxp
  • load-acquire/store-release load/store: ldar, stlr
  • Unprivileged load/store: ldtr, ldtrb, ldtrsb, sttr, sttrb, sttrh, ...

總結

  • ARM64 的 Load/Store 指令還真複雜XD
  • RISC-V 的相對簡單好多啊~XD

上一篇
[鐵人賽] Day 13 ARM 第 18 章節 memory barrier instruction 產生的原因(2)
下一篇
[鐵人賽] Day 15 ARM 第 3 章節 A64指令集(1) -- Load/Store 指令(2)
系列文
上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言