1
我正在看下面的說明,我似乎無法理解它。我試着閱讀一些在線的PowerPC指令參考,但他們對我來說不是很理解。lwz實際發生了什麼?
lwz r4, [email protected](r28)
這裏DWORD如何顯示IDA
dword_91C0DB28: .long 0
究竟是怎麼回事時,LWZ叫什麼,爲什麼是它有用嗎?
我正在看下面的說明,我似乎無法理解它。我試着閱讀一些在線的PowerPC指令參考,但他們對我來說不是很理解。lwz實際發生了什麼?
lwz r4, [email protected](r28)
這裏DWORD如何顯示IDA
dword_91C0DB28: .long 0
究竟是怎麼回事時,LWZ叫什麼,爲什麼是它有用嗎?
lwz
從定義的存儲器地址加載一個字到目標寄存器,零高32位。在這種情況下,目標是r4
,內存地址是dword_91X0DB28 + r28
。
我現在明白了,'@ l'和'@ h'之後加載了雙字的低位和高位。 – Aidan
'lwz'在給定的內存地址加載一個字,並將高32位加零。有什麼不清楚的呢? –
@SamiKuhmonen如果我們要加載的地址是「dword_91C0DB28」,那麼在這個例子中'r28'的目的是什麼? – Aidan
_「我們要加載的地址是dword_91C0DB28」_。不是。 'dword_91C0DB28'就是位移,而基地址是在'r28'中給出的。有效地址是base_address + sign_extend(位移)。在這種情況下'r28'可能包含'dword_91C0DB28'所在部分的開始地址。 – Michael