写入ecx寄存器会导致Windows 7中的“访问冲突”

时间:2011-08-06 05:31:32

标签: c++ visual-studio-2010 windows-7 assembly

您好,非常感谢您的帮助!

在我的c ++代码中,我有一些嵌入式汇编程序代码,并且在行[mov ecx,1AF858h]中会出现一条错误消息,说“访问冲突”。它与Windows XP完美配合,但遗憾的是不适用于Windows 7.

我不明白导致问题的原因,我想知道我需要做些什么来修复它。

亲切的问候,大卫

1 个答案:

答案 0 :(得分:3)

您需要使用VirtualProtect / VirtualProtectEx将您的字节数组标记为可执行文件,或使用正确的VirtualAlloc flags分配它(可能PAGE_READWRITE时编写代码然后PAGE_EXECUTE_READ)。请注意,它可能需要在页面基础上完成。