gpt4 book ai didi

assembly - 从 CD 加载扇区

转载 作者:行者123 更新时间:2023-12-04 05:54:32 25 4
gpt4 key购买 nike

我是操作系统设计的新手,到目前为止已经设计了一个“操作系统”(实际上只是一个引导扇区),并决定尝试制作一个独特的引导加载程序和“内核”(仍然非常简单)。我的问题很简单,但通过谷歌搜索和搜索这个网站,我设法避开了(好吧,我确实找到了一个类似的问题,但答案是模糊/高级让我能够使用它)。

我看过 int 0x13 AH=02,但它使用了轨道,我认为 CD 没有使用。我在某处看到我应该使用扩展读取扇区 (AH=0x42),但我不知道如何使用它,因为我看不到在哪里可以指定要读取的扇区,以及该扇区应该在 RAM 中的位置.

问题是:如何从使用 El Torito 无仿真的 CD 加载扇区。如果您能以“最简单的形式”给出答案,并尝试提供一些代码,我将不胜感激,因为我是新手。提前致谢!

编辑:

我不知道你是否需要它,但我使用的是 NASM 语法,所以如果你能在 NASM 中给我答案,那就太好了。

最佳答案

按照惯例,BIOS 将您应该用于 int 13h 的驱动器号放入 DL 寄存器。然后你可以使用 int 13h, ax=4B01h(获取仿真状态)来确定磁盘信息,并使用 int 13x 函数 42h 读取 0x800 大小的 CD 扇区,其中 LBA 字段中的扇区号。检查 ISOLINUX bootloader更多细节。入口点是 _start , 读取扇区的例程是 getlinsec_cdrom .

编辑:阅读 the documentation关于如何使用它的 int 13h 扩展。基本上,您需要传递一个填充结构,包括扇区号、计数和缓冲区地址,用于放置读取数据。

关于assembly - 从 CD 加载扇区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com