2012-11-13 291 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指针解引用。

相关问题