2012-11-13 287 views
0

是什麼mov 0x40(%eax),%eax是什麼意思?

0x01b55ee2 <+0014> mov 0x40(%eax),%eax 

是什麼意思?我應該如何解釋0x40(),因爲我的代碼在該位置崩潰時出現問題。 %eax寄存器的內容爲0.

+1

彙編語言有許多不同的風格,但以上幾種微處理器系列中很常見。這是一個「移動」(數據複製)指令。有兩個操作數。右操作數很簡單 - 寄存器eax。左邊的操作數是由(寄存器eax中的值加到常量0x40)尋址的存儲位置。我對這是左右移動有點模糊。如果eax爲零,那麼您解除引用空指針。 –

+0

請注意,本聲明基本上是您在鏈接列表後獲得的內容。但是(如果是這樣的話)它加載的最後一個鏈接指針是空的,所以它從列表的末尾落下。 –

回答

3

您正在查看的代碼將%eax + 0x40作爲地址,並將該位置的32位移動到%eax。如果%eax爲零,這意味着你正在處理的基本上是一個NULL指針解引用。

相關問題