读书人

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

发布时间: 2013-03-27 11:22:42 作者: rapoo

保护模式下指令(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

读书人网 >汇编语言

热点推荐