Assembly 引导加载程序如何读取DVD(cd)?
我有一个用汇编编写的第一阶段引导加载程序。我需要它从dvd(或cd)加载第二阶段引导加载程序。我只找到了从floopy或hdd读取的示例。在那里使用的中断时间为13小时。在中断描述中,它说它可以读取软盘和硬盘。我试着用13h来读一张CD,就好像它是一张软盘,但它不起作用Assembly 引导加载程序如何读取DVD(cd)?,assembly,bootloader,bios,dvd,Assembly,Bootloader,Bios,Dvd,我有一个用汇编编写的第一阶段引导加载程序。我需要它从dvd(或cd)加载第二阶段引导加载程序。我只找到了从floopy或hdd读取的示例。在那里使用的中断时间为13小时。在中断描述中,它说它可以读取软盘和硬盘。我试着用13h来读一张CD,就好像它是一张软盘,但它不起作用 问题:软盘和dvd之间有什么区别(从访问它们的意义上来说),我可以使用CHS(cilinder,head,sector),扇区大小是多少,我可以使用13h指令正确读取dvd吗。也许有一些例子。我查看了LILO的源代码,发现那里只
问题:软盘和dvd之间有什么区别(从访问它们的意义上来说),我可以使用CHS(cilinder,head,sector),扇区大小是多少,我可以使用13h指令正确读取dvd吗。也许有一些例子。我查看了LILO的源代码,发现那里只有13h,所以它必须工作。谢谢。LILO不适用于从CD引导,所以我不希望它包含任何用于读取这些内容的代码。试着看看ISOLINUX引导加载程序,它是Linux引导CD上最常用的。引导加载程序从DVD加载-它从软盘或硬盘加载。DVD/CD以模拟模式运行,并在引导过程中公开软盘。您可以使用mkisofs工具从可引导软盘映像文件制作可引导CD。 以下是我在Windows下的操作方式:
CdFiles
,其中包含可引导软盘映像
文件,floppy.img
(1474560字节长),以及我创建的任何其他文件
我想把它放在CD上mkisofs.exe-b floppy.img-v-r-l-o cd.iso CdFiles
CD.ISO
,您可以在CD上刻录并从磁盘引导,也可以在任何PC仿真器中使用并直接从映像引导
BIOS将模拟CD上的软盘驱动器,内容为
floppy.img
,它将能够使用驱动器号0通过int 13h正常访问自身。为了通过int 13h访问整个CD,您需要创建硬盘映像(可引导),并指定不同的模拟方法(不确定如何使用mkisofs,从未尝试过hdd映像)。同样的情况也会发生,但是现在一个硬盘驱动器将被模拟在CD的顶部,对于int 13h,它将是驱动器号80h。我不完全确定(因此没有答案),但我认为引导加载程序不会从DVD加载-它从软盘或硬盘加载。DVD/CD以模拟模式运行,并在引导过程中暴露软盘/光盘。我想“模拟”一词是关键。我很快找到了“El Torito”扩展,它解释了一切。你可以写下来作为答案,我会接受的。谢谢,我只是个懒散有趣的工具。我用的是MagicISO,但我会试试。