c++ - 如何设置零标志

标签 c++ x86

LONG WINAPI MyUnhandledExceptionFilter(PEXCEPTION_POINTERS p)
{

    if(p->ExceptionRecord->ExceptionCode==EXCEPTION_ACCESS_VIOLATION){
        if(p->ContextRecord->Eip==6F3A15FD){
            p->ContextRecord->EFlags
        }

如果在指定地址发生异常,我希望我的异常处理程序设置零标志;) 我该怎么做 p->ContextRecord->EFlags|=

另外,如果我在访问冲突后给出 EXCEPTION_CONTINUE_EXECUTION 是否有效? :D 而且,我是否必须包含 EIP,否则它会落在下一条指令上?

最佳答案

ZFEFLAGS 的第 6 位, 所以 EFlags |= 1 << 6;

下载 Intel 或 AMD 的 CPU 手册。您会在那里找到所有这些信息。

关于c++ - 如何设置零标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672360/

相关文章:

c - VxWorks 堆栈帧异常大

c++ - 为什么 istream::getline() 返回这么多次(什么都没有)

c++ - 在32位数字中查找第一个(最低)置位位置

c++ - 英特尔引脚 : analysis routine detects ah register instead of rsp (REG_STACK_PTR)

c - 将不正确的字符写入帧缓冲区

c++ - 快速将 2 个 double 数组交织成具有 2 个 float 和 1 个 int(循环不变)成员的结构数组,并使用 SIMD double->float 转换?

c++ - 使用 gcc 编译代码后,std::out_of_range 异常字符串不会打印

c++ - istream 在 DEV C++ 中不工作

c++ - 在 C++ 中动态分配二维数组的行

c++ - 缩放位图输出会扭曲图像