我看到以下代码 -
add $0x14,%esp
mov %eax,%ebx
test %ebx,%ebx
jl 80590d7 <XXXX+0xbc7>
我对理解上述代码感到困惑。如果我们有像 test %ebx 这样的指令,%ebx 应该总是相等的吗?
此外,我在 GDB 中运行,以下是信息寄存器的输出 -
(gdb) info registers
eax 0x0 0
ecx 0x189f 6303
edx 0x6 6
ebx 0x442ff4 4468724
esp 0xffbde13c 0xffbde13c
ebp 0xffbde4c8 0xffbde4c8
esi 0x1d5c4d50 492588368
edi 0x444140 4473152
eip 0x80590dd 0x80590dd
eflags 0x296 [ PF AF SF IF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x63 99
有人可以解释一下这是如何工作的吗?