-1
這兩個彙編命令是否導致相同的機器動作?如果不是,有什麼區別?ADD和LDUR可以用來完成同樣的事情嗎?
// X6 is the base address of an integer array, X10 is a temporary register
ADD X10, X6, XZR
LDUR X10, [X6, #0]
這兩個彙編命令是否導致相同的機器動作?如果不是,有什麼區別?ADD和LDUR可以用來完成同樣的事情嗎?
// X6 is the base address of an integer array, X10 is a temporary register
ADD X10, X6, XZR
LDUR X10, [X6, #0]
首先是一個附加,X10=X6+0
(或用途不同在此情況下的寄存器的副本),第二個是從存儲器中的負載,使用X6作爲指針與零offest(所以索引[0]數組值)。
在ARM中,對通用寄存器中的值執行算術運算(使用相同的寄存器組來保存結果),並訪問內存使用一個(或多個)通用寄存器來保存數據,而另一個通用寄存器作爲指針。
這被稱爲加載/存儲體系結構。如果您更熟悉不同類型的體系結構,那麼指令集可能會出現混淆狀態。
一個是計算,從存儲器中的一個負載數據。他們完全不同。 –
那麼在第一個命令中,X10是否是A [0]的地址?或者存儲在那裏的值? –