当前位置: 代码迷 >> 汇编语言 >> 保护模式下授命(mov ax,立即数)出错
  详细解决方案

保护模式下授命(mov ax,立即数)出错

热度:579   发布时间:2016-05-02 05:01:45.0
保护模式下指令(mov ax,立即数)出错
如题,在切换到保护模式后,执行例如mov ax, 0指令虚拟机报错。。。改成mov eax, 0或mov ah, 0能正常运行,求解释!

补充:用的是nasm编译器,编译通过!
------解决方案--------------------
你查看下编译后的十六进制,是不是nasm编译出错了呢。
mov ax,0
实模式是 B8 00 00
保护模式是 66:B8 00 00 

是否缺少了66H prefix,这个前缀在16下指明操作数是32位,而在32位下指明操作数是16位的,
具体你可以参考 Intel文档 或者 http://www.mouseos.com/x64/prefix.html#t431