![获取“dd”创建的软盘映像中的磁道和扇区的位置](https://linux22.com/image/1306459/%E8%8E%B7%E5%8F%96%E2%80%9Cdd%E2%80%9D%E5%88%9B%E5%BB%BA%E7%9A%84%E8%BD%AF%E7%9B%98%E6%98%A0%E5%83%8F%E4%B8%AD%E7%9A%84%E7%A3%81%E9%81%93%E5%92%8C%E6%89%87%E5%8C%BA%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我得到了一些使用 *nix 命令创建的软盘映像(原始 DOS 6.22 和 FreeDOS 1.44 MB 启动盘),dd
它们在虚拟环境中使用时可以正常工作。
现在我想了解这些文件的结构。
据我所知,1.44 MB 软盘有80 首曲目,每条轨道都有18 个部门每个部门包括512 字节。乘以这个数字得到大约 0.7MB,这正好是双方。
0 号轨道 2 扇区 2 头的位置是 9728(或 0x2600) - 这是 DOS 6.22 引导加载程序从磁盘获取的第一个扇区。但是这个位置是如何计算出来的呢?
我如何获得这些值?我使用模拟器逐步执行引导加载程序。第一次软盘访问是通过调用中断 013h 完成的,其中 AH = 2(从软盘读取)、AL = 1(读取一个扇区)、CH = 0(从磁道 0 读取)、CL = 2(从扇区 2 读取)和 DH = 1(使用磁头 1 = 使用第二面)。此调用使模拟器加载从位置 9728 开始的字节。
除扇区号(以 1 为基数)之外的每个寄存器值都是以 0 为基数。
提前致谢!