访问IA32中的条件标志

时间:2013-11-26 16:03:13

标签: flags ia-32

有没有办法可以访问条件标志的值,例如零标志,并将该值移动到寄存器中?像这样:

cmpl %eax,%edx
movl ZF, %eax

谢谢, 此致

1 个答案:

答案 0 :(得分:0)

因此,在网上浏览之后,可能会做一些类似的事情:

令res为操作cmpl%eax,& edx之后的所有条件标志(零标志(ZF),进位标志(CF),符号标志(SF),溢出标志(OF))的结果值。 (执行%edx - %eax并丢弃结果)

sete D  //Sets D to ZF                -> %eax == %edx
setne D //Sets D to ~ZF               -> %eax != %edx
setg D  //Sets D to ~(SF ^ OF) & ~ZF  -> %edx > %eax
setge D //Sets D to ~(SF ^ OF)        -> %edx >= %eax
setl D  //Sets D to SF ^ OF           -> %edx < %eax
setle D //Sets D to (SF ^ OF) | ZF    -> %edx <= %eax