X86 正在检查程序集代码mov 0x8(%ebx),%eax mov(%eax),%eax cmp%eax,(%ebx)

X86 正在检查程序集代码mov 0x8(%ebx),%eax mov(%eax),%eax cmp%eax,(%ebx),x86,X86,我正在研究一个二元炸弹的最后阶段,但我有点不确定这三个陈述在做什么。如有任何澄清,将不胜感激 mov 0x8(%ebx),%eax 移动值(%eax),%eax cmp%eax,(%ebx)读取ebx+0x8所指地址的内容,并将其存储在eax寄存器中 mov 0x8(%ebx),%eax 将EAX寄存器指向的地址的内容复制到EAX mov (%eax),%eax 将EAX中的值与EBX寄存器中指向的地址内容进行比较 cmp %eax,(%ebx) 因此,基本上,它将指针解引用到地址EBX+

我正在研究一个二元炸弹的最后阶段,但我有点不确定这三个陈述在做什么。如有任何澄清,将不胜感激

mov 0x8(%ebx),%eax

移动值(%eax),%eax


cmp%eax,(%ebx)

读取ebx+0x8所指地址的内容,并将其存储在eax寄存器中

mov 0x8(%ebx),%eax
将EAX寄存器指向的地址的内容复制到EAX

mov (%eax),%eax
将EAX中的值与EBX寄存器中指向的地址内容进行比较

cmp %eax,(%ebx)

因此,基本上,它将指针解引用到地址EBX+0x8中的指针,并将其值与地址EBX中包含的值进行比较。现在,如果您在前面的三条语句之后添加了一条jge语句,那么您将检查%eax>(%EBX)?jge(如果相等或更大,则跳转)。因此,如果%EAX>=(%EBX),它将跳转