-1
我工作的二进制炸弹的最后阶段,但我有点不能确定这三个陈述正在做。任何澄清将不胜感激。检查汇编代码MOV 0x8中(%EBX),%EAX MOV(%eax中),%EAX CMP%EAX(%EBX)
MOV位于0x8(%EBX),%eax中
MOV(%eax中),%eax中
CMP%eax中,(%EBX)
我工作的二进制炸弹的最后阶段,但我有点不能确定这三个陈述正在做。任何澄清将不胜感激。检查汇编代码MOV 0x8中(%EBX),%EAX MOV(%eax中),%EAX CMP%EAX(%EBX)
MOV位于0x8(%EBX),%eax中
MOV(%eax中),%eax中
CMP%eax中,(%EBX)
浏览内容通过EBX + 0x8中指出并将其存储在EAX寄存器
mov 0x8(%ebx),%eax
通过EAX寄存器指向的地址将内容复制到EAX
mov (%eax),%eax
在EAX比较值与地址的内容EBX寄存器指向。
cmp %eax,(%ebx)
所以基本上取消引用指针地址EBX + 0x8中的指针,如果你的前3条语句后添加一个JGE声明,你会被检查,如果%,但地址EBX包含现在
值相比较它的价值eax>(%ebx)? – AArce
jge(如果等于或大于,跳转)。所以它跳转如果%EAX> =(%EBX) –