我正在使用ARM體系結構,對於LDRB的概念我有點不清楚。 LDRB是可選的B命令的LDR,用於加載32位字的最低有效字節。三個問題。ARM ASM中的LDRB - 一般問題
- 我真正想要的是前8位,而不是最後8位(我在數組上迭代)。有沒有一個優雅的方式來做到這一點?我找不到它的命令。
- 我現在正在做的是SUB r4,r4,#3將r4(我想裝載的指針)移回三個字節,以便最低有效字節現在是32位的前一個字節字。如果我所做的只是迭代,這是否會導致記憶問題?
- 我正在使用LDRB r7,r4;這應該將來自r4的最不重要的字節加載到r7中。通過零擴展,它意味着將出現什麼樣的00 ... 00010101或10101000 ... 00?
(也就是說,ARM文檔說LDRB將零擴展,它沒有指定向哪個方向)。 –
'LDRB r7,r4'在上次檢查時不是有效的指令。零擴展意味着用零填充N個最高有效位。 – Michael
你讀的數據的佈局方式有點不清楚(例如你爲什麼需要從指針中減去3)。如果一個指針指向一個單詞的開始(即指針是單詞對齊的),那麼如果你從該指針中讀取'LDRB',你將會讀取最低有效字節(在一個小端機器上)。 – Michael