浙林龙哥

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2005年2月27日

摘要: 这几天最头疼的一个问题就是磁盘引导程序,就是boot.asm和setup.asm两个文件的问题,我发现, 用int13读磁盘,如果设置systemsize=5k,那么没有问题, 但是=10k的时候,根本就不行了, 真不知道为啥,需要注意的是,这个问题在vmware和boch下都没有,但是用我的真机就是不行,别人的也不行. 最后,我的代码简化到了不能再简,就是在kernel.c里头打个字到屏幕... 阅读全文
posted @ 2005-02-27 22:55 浙林龙哥 阅读(4245) 评论(0) 推荐(0)

摘要: 其实所有的驱动程序最底层不过是使用硬件的command,也就是端口的io操作,ATA设备的命令端口是1f0h-1f7h和170h-177h,控制端口是3f4h-3f7h和374h-377h。这个东西说起来话就长了。我给一个读取Primary的Master的MBR的例子。 nLegacy IO Access ( Debug.exe or Debug32.exe ) o 3F6 04 ;... 阅读全文
posted @ 2005-02-27 22:52 浙林龙哥 阅读(2900) 评论(4) 推荐(0)

摘要: bochs反编译的BUG: 我写了如下代码: 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 结果真... 阅读全文
posted @ 2005-02-27 19:05 浙林龙哥 阅读(1163) 评论(0) 推荐(0)

摘要: dd命令 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。 语法:dd [选项] if =输入文... 阅读全文
posted @ 2005-02-27 13:32 浙林龙哥 阅读(1709) 评论(0) 推荐(0)