是否有任何汇编指令可以让我们直接读取或写入 Intel 80386 16 位标志寄存器中的溢出标志?如果不是,我们应该使用什么伪代码?
问问题
6251 次
3 回答
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
于 2013-03-13T15:38:02.440 回答
1
要将标志读入AX
:
pushf
pop ax
写入标志:如果您需要设置/清除特定位,有一些命令,如stc/clc
(用于进位标志)、std/cld
(用于方向)等;但不是以这种方式暴露位。要写入整个标志寄存器,请使用
push ax
popf
于 2013-03-13T15:56:38.383 回答
0
利用
Pushf
// modify or read ax register
Popf
于 2013-03-13T15:19:49.003 回答