2012年10月6日

用nasm编译16位的elf文件

摘要: 文档里说到nasm在输出elf目标文件时,具备16位段的扩展能力(众所周知elf只有32位和64位格式)。不知道官方这句话真的假的,反正目前我试过两种情形会失败: 情形1——16位实模式下,通过int 13h将软盘上的kernel.elf文件加载到80000h地址处,找到elf的入口地址,然后跳进去,结果代码执行错误,输入"u/10 entry"(entry是在调试时候慢慢算出来的)反汇编一看,入口处的指令奇形怪状,跟kernel.asm不一样。我怀疑16位实模式下,使不能执行elf文件中的指令的。下面贴出来kernel.asm: kernel.asm global _st 阅读全文

posted @ 2012-10-06 15:30 weiweishuo 阅读(711) 评论(0) 推荐(0)

bochs调试心得

摘要: 1,让调试错误信息显示到控制台 作者在第三章讲DPL时,设计了一个保护异常的出错例子(50页):将DPL设为1,RPL设为3,编译运行,结果“系统崩溃,bochs重启,在控制台你能看到这样的字样:load_seg_reg(ds):RPL&amp;RPL must be <=DPL” 可我专门找了一个上午都没有找到出错信息,最后发现bochs的调试出错信息默认都被重定向到bochsout.txt文件里去了。 要想让出错信息重回控制台,把配置文件.bochsrc里“log: Bochsout.txt ”这行用#号注释掉就OK了。 bochs在退出或崩溃时都会输出有关信息(到控制台或是 阅读全文

posted @ 2012-10-06 15:08 weiweishuo 阅读(746) 评论(0) 推荐(0)

导航