1

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

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

4

3 回答 3

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 进行操作,从未尝试过硬盘映像)。同样会发生,但现在将在 CD 上模拟硬盘驱动器,它将是驱动器号 80h 用于 int 13h。

于 2011-10-15T08:02:06.307 回答
1

LILO 不适用于从 CD 引导,因此我不希望它包含任何用于读取这些内容的代码。尝试查看 ISOLINUX 引导加载程序,它是 Linux 引导 CD 上最常用的。

于 2011-10-15T07:40:16.210 回答
1

从 DVD 加载引导加载程序 - 它从软盘或硬盘加载。DVD/CD 在仿真模式下运行并在启动过程中暴露一张软盘/光盘

于 2011-10-15T07:53:46.687 回答