当前位置: 技术问答>linux和unix
Bochs调试 从实模式到保护模式 单步调试时, 反汇编和源代码不一样了<linux0.12内核完全剖析>中第四章的最后一节4.9的例子
来源: 互联网 发布时间:2017-05-26
本文导语: 本帖最后由 lingliy 于 2014-07-23 09:30:51 编辑 经过我测试, 书中4.9节中boot.s和head.s例子, 只要开启保护模式, 并且使用跳转指令 jmp 8:0, 进入到head.s中的一个指令 mov eax, 0x10, 但bochs调试结果显示是错的, 变成 mov ax,...
mov ax, 0x0010 ; 66b81000
add byte ptr ds:[eax], al; 0000
二进制66b810000000 正好对应汇编 mov eax, 0x10
不知道有谁知道这是什么原因导致的?
(在开启保护模式之前不会出现此问题, 我测试过, 开启保护并使用过跳转指令jmp就出此问题)
|
jmp之后的代码应该用32位编译。你试试给后面的代码加上bits 32。