引导加载程序如何读取 DVD(cd)?

ilc*_*edo 2 assembly dvd bios bootloader

我有一个用汇编编写的第一阶段引导加载程序。我需要它从 dvd(或 cd)加载第二阶段引导加载程序。我只找到了从 floopy 或 hdd 读取的示例。那里使用的中断是 13h。在中断描述中,它说它可以读取软盘和硬盘。我曾尝试使用 13h 来读取 CD,就好像它是软盘一样,但它不起作用。

问题:软盘和 DVD 之间有区别吗(在访问它们的意义上),我可以使用 CHS(磁头,磁头,扇区)吗,它的扇区大小是多少,我可以使用 13h 指令正确读取 DVD。也许一些例子。我查看了 LILO 的源代码,发现那里只有 13h,所以它必须工作。谢谢。

Ale*_*nze 5

您可以使用mkisofs工具从可引导软盘映像文件中制作可引导 CD 。这是我在 Windows 下的操作方法:

  1. 创建一个子目录,CdFiles,其中包含一个可引导软盘映像文件floppy.img(1474560 字节长),以及我想要在 CD 上的任何其他文件。
  2. mkisofs.exe -b floppy.img -v -r -l -o cd.iso CdFiles

它将创建一个 CD ISO 映像文件,cd.iso您可以在 CD 上刻录并从磁盘启动,也可以在任何 PC 模拟器中使用并直接从映像启动。

BIOS 将模拟 CD 上的软盘驱动器的内容,floppy.img它可以使用驱动器号 0 通过 int 13h 正常访问自身。为了通过 int 13h 访问整个 CD,您需要创建一个硬盘驱动器映像(可引导)并指定不同的仿真方法(不确定如何使用 mkisofs,从未尝试过 hdd 图像)。会发生同样的情况,但现在将在 CD 顶部模拟硬盘驱动器,并且它的驱动器编号为 80h,用于 int 13h。