INT 13H的困惑

qexing 2007-06-08 03:08:43
在bootloader中使用INT 13H,02H BIOS中断来读硬盘,其中DL为要读的硬盘的序号,我看到网上所有的文章基本上都是80H,说明bootloader所在的硬盘为第一个硬盘,但我将bootloader所在的硬盘放在IDE2上,IDE1上为一空白的盘,将BIOS设置成IDE2启动,结果用DL=80H可以读出正确的数据,说明BIOS已经自动将bootloader所在的硬盘设置为第一个硬盘。

我问了一些网友,他们认为现在支持BBS的BIOS会自动将bootloader所在硬盘的序号设置成80H,我想知道如果是在不支持BBS的BIOS中运行,如果bootloader所在硬盘的序号不是80H的情况下,bootloader应该如何得到自己所在硬盘的序号,谢谢!
...全文
179 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
没错。
80、81、82等等只是BIOS标识硬盘顺序的记号,
从哪个硬盘引导,哪个就是80(你用INT 13h去读写第一个硬盘就是它)。
zara 2007-06-08
  • 打赏
  • 举报
回复
从硬盘启动, 必须是 80h 盘, 这个是个约定吧, 不可能从 81h 甚至是 82h 硬盘启动的. 一般明显的标记就是分区的可引导标记就是这个 80h 字节.
要注意的是, 80h 盘, 这个是逻辑上的首硬盘, 和实际物理连接上的第一个硬盘没用必然的对应关系. bios 的硬盘管理部分, 也是出于用户切换可引导盘方面上的需要, 提供了个物理对逻辑的映射功能, 即在 bios 设置中的可用选择是从第几硬盘启动的功能. 选定了的硬盘, 不管它是连接在那个口, 什么状态, 都会被映射为 80h 逻辑盘的. 其它的硬盘会顺延.

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧