x86-64架构下NASM分页开关代码触发系统重置的原因排查
x86-64架构下修改CR0寄存器控制分页触发系统重置的问题
我正在基于x86-64架构开发操作系统,尝试通过修改CR0寄存器的第31位来禁用和启用分页,但代码触发了系统重置(可能是三重故障)。
相关代码如下:
; Disable paging mov rax, cr0 and rax, ~0x80000000 mov cr0, rax ; Enable paging mov rax, cr0 or rax, 0x80000000 mov cr0, rax
NASM编译时给出以下警告:
warning: signed dword immediate exceeds bounds [-w+number-overflow]
warning: dword data exceeds bounds [-w+number-overflow]
看起来NASM将64位立即数当作32位处理,我不确定x86-64中and r64, imm64是否为有效指令。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

