我正在尝试从 EFLAGS 寄存器中获取 DF 的值。
我尝试使用 LAHF
指令,但根据 Intel X86 文档,该指令仅加载 SF、ZF、AF、PF、CF
标志。但是,我正试图找到一条指令,它会给我 DF 寄存器的值。
提前致谢。
最佳答案
使用以下代码:
pushf ;Maybe you'll need pushfd
pop eax
bt eax, 10
如果设置了 CF,则设置了 DF!
如果你不想破坏任何寄存器,你可以使用下一个方法(受@fuz 启发):
pushf
test byte [esp+1],4
lea esp, [esp+4] ;The LEA instruction doesn't change any flags
这次如果设置了ZF,就说明DF被清除了!
关于c - x86 - 获取方向标志 (DF) 的当前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611055/