[英]What does [R0,R3] do in Assembly?
我是大會的初學者,我已經在網上搜索了這個問題,但無濟於事......
最近我一直試圖反匯編用於特定Android應用程序的庫。 用IDA Pro拆解后,我遇到了這個子程序:
MOVS R3, 0x1AC
LDR R0, [R0,R3]
BX LR
我理解這3行中發生的大部分事情,但我堅持認為
LDR R0, [R0,R3]
這條線究竟做了什么? 是否將R0設置為R0偏移R3的值?
LDR R0,[R0,R3]
這條線究竟做了什么
R3
用作基址( R0
)的偏移量。 換句話說,有效地址是R0+R3
, 從該地址加載的值被寫入R0
。
請參閱LDR / STR的文檔 。
不僅使用LDR R0,[R0,#0x1AC]
原因可能是這是Thumb代碼。 Thumb模式下LDR/STR
的立即偏移量僅為7位 (5位向左移位2位),0x1AC不適合7位。 因此,偏移首先放在寄存器中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.