在x86 ASM中,添加或减去分支时是否可以禁止溢出?因此,例如,当从0x01减去0x02时,它将设置0x00而不是0xFF。x86汇编:没有溢出和分支的ADD/SUB/INC/DEC
我希望这可能是不可能的,所以我也有兴趣回答这个问题的更加限制的形式,其中只有0x01被加/减。我有一个想法,是这样的(是的溢出标志):
dec eax
add eax,OF
我不知道其他的架构,但i386的我找不到,因为显然标志不能被这个操作码解释为整数并用于算术运算。我发现了一个解决方案,它的工作,但只适用于最低字节时,高字节是未使用:
dec ax
sub al,ah
xor ah,ah
有没有更好的方式来做到这一点,说不定这也适用于更一般的情况?
我不认为一般情况下只需三条指令即可解决。很好的回答,谢谢。 –