我写了如下代码:
bootdrive: db 0
mov [bootdrive] , dl
mov dl , [bootdrive]
然后用nasm编译,再到bochs中调试,发现两行反编译出来的代码都是:
mov dl , [bootdrive]
而机器码是不一样的:
8A 16 37 01
88 16 37 01
后来又在第一行前加了:mov dl,1
结果真的可以把1写进bootdrive。
结论:
1.bochs执行是正确的
2.bocks反编译显示的代码不正确
目前使用的版本:Bochs-2.1.1