任何人都可以告诉我以下内容的含义:
gdb> disas 0x080ed5af
0x080ed5ac <func1+205>: mov 0x8(%eax),%eax
0x080ed5af <func1+208>: testb $0x10,0x8(%eax)
0x080ed5b3 <func1+212>: jne 0x80ed604 <dapriv_disk_op+293>
0x080ed5b5 <func1+214>: mov %edi,(%esp)
testb $0x10,0x8(%eax)
是什么意思?
答案 0 :(得分:9)
它对两个操作数(0x10
AND 0x8(%eax)
执行按位AND(这是位于%eax
+ 0x8指向的地址处的字节值)。然而,操作数被改变,指令改变了标志,最重要的是,如果AND的结果为零,则ZF标志为1,否则为0。如果ZF等于,则以下jne
执行跳转0