如果有人可以,请帮助我!
我编写了3行汇编代码以获取RFLAGS的值:
PUBLIC x64rflags
.code
; Caller C++ function prototype: unsigned long long int x64rflags();
x64rflags PROC
pushfq ; RFLAGS into stack
pop rax ; RAX = RFLAGS
ret
x64rflags ENDP
End
Run Code Online (Sandbox Code Playgroud)
我在C ++库中使用它来检查C ++程序中的标志:
//The RFLAGS query function. Result in unsigned long long int value.
extern "C"
{
unsigned long long int x64rflags();
}
//The FLAGS bits decimal values
enum
{
FLAGS_CF = 1, //Carry
FLAGS_PF = 4, //Parity
FLAGS_AF = 16, //Adjust (Auxiliary carry)
FLAGS_ZF = 64, //Zero …Run Code Online (Sandbox Code Playgroud)