我有一个非常简单的问题。由于我没有任何测试环境,我无法自己找到答案。
如果我在页面边缘访问4个字节,会发生什么?
mov eax, dword [0x100000+4095]
当我访问0x101000上的页面时,以及当我没有访问页面时,上面的三个字节是什么?
请帮忙。
答案 0 :(得分:1)
什么样的开心主要取决于您的操作系统。如果您有正常的内存访问权限,则不会发生任何事情。只需读取当时的值。如果不允许访问该页面,那么您的程序将生成一个页面错误,操作系统必须处理该错误。
如果页面在光盘上,因为它已被换出,那么操作系统将加载页面,并从中断处继续运行程序。你的程序不会注意到这一点。如果页面无效,则操作系统将引发异常,并且根据操作系统的不同,您可以捕获它,否则程序将崩溃。
如果访问是在内核级别完成的并且无法解决,那么您的操作系统很可能会因内核崩溃而崩溃,或者如果写得很好,它可能会禁用导致它的驱动程序。