-
-
[原创]《一个64位操作系统的设计与实现》中的一个小坑
-
发表于:
2019-3-16 18:31
10104
-
[原创]《一个64位操作系统的设计与实现》中的一个小坑
最近在看《一个64位操作系统的设计与实现》,书上从第七章开始需要先将U盘格式化为USB-FDD,然后在真机上软盘启动U盘里的系统,作者玩得不亦乐乎,然而作为学习的读者,这很不方便,而且,书中的系统竟然是格式化U盘为FDD并以软盘启动,但VMWARE并不支持软盘启动,现在找到了一个办法,格式化U盘为HDD并可以在VMWARE上硬盘启动U盘里的系统,只需要稍加操作即可。
附件为boot.asm和loader.asm中的代码。
按照以下步骤进行:
1、 首先用DiskGenius清空数据并格式化为HDD
2.格式化后U盘内会有很多来自DiskGenius的引导数据,这些数据可以删也可以不删,最好是删掉。
3.书本的7-1代码示例中的boot.asm修改两个部分
第一个部分是引导扇区的标志信息以及3个变量的数值,需要结合DiskGenius在“分区参数”中提供的信息来修改这些数值:
第二个部分是在函数Func_ReadOneSector中,int 13h的dl寄存器是驱动器号,由于书中是格式化为软盘,所以驱动器号为0也无所谓,但格式化为硬盘后,驱动器号是由DiskGenius决定的。
将mov dl,0改为mov dl,[BS_DrvNum]
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课