是否有任何汇编指令让我们直接读取或写入Intel 80386 16位Flags寄存器中的溢出标志?如果没有,我们应该使用什么伪代码?
答案 0 :(得分:8)
只读溢出标志:
SETO AL
; AL now contains 1 if the overflow flag was set, and 0 if it wasn't
要反转溢出标志:
PUSHF
POP AX
XOR AX,800h ; The overflow flag is in bit 11
PUSH AX
POPF
答案 1 :(得分:1)
将标志读入AX
:
pushf
pop ax
要写入标志:如果需要设置/清除特定位,有一些命令,如stc/clc
(用于进位标志),std/cld
(用于方向)等等;但不会以这种方式暴露比特。要编写整个标志寄存器,请使用
push ax
popf
答案 2 :(得分:0)
使用
Pushf
// modify or read ax register
Popf