用于设置,清除OF&组件的组装说明TF标志

时间:2012-11-17 08:36:41

标签: x86 intel flags masm x86-16

是否有任何汇编指令让我们直接“设置”或“清除”英特尔8086 16位标志寄存器中的“OF”和“TF”标志?如果没有,我们应该使用什么伪代码?

1 个答案:

答案 0 :(得分:8)

http://en.wikipedia.org/wiki/Trap_flag

  

8086没有指令直接设置或重置陷阱标志。这些操作是通过按下堆栈上的标志寄存器,将陷阱标志位更改为程序员想要的位置来完成的,然后将标志寄存器从堆栈中弹出。设置陷阱标志的说明如下:

PUSHF ; Push flags on stack
MOV BP,SP  ; Copy SP to BP for use as index
OR WORD PTR[BP+0],0100H ; Set TF flag
POPF  ; Restore flag Register
  

要重置陷阱标志,只需使用以下指令替换前面序列中的OR指令:

AND WORD PTR[BP+0],0FEFFH

要设置和清除溢出标记,您可以执行相同操作,将0100H替换为0800H,将0FEFFh替换为0F7FFh

在设置之前,请务必了解TF的作用。这是一个陷阱。