关于boot.s的问题

proghua 2011-03-21 08:32:53
load_setup:
mov dx,#0x0000 ! drive 0, head 0
mov cx,#0x0002 ! sector 2, track 0
mov bx,#0x0200 ! address = 512, in INITSEG
mov ax,#0x0200+SETUPLEN ! service 2, nr of sectors
int 0x13 ! read it
jnc ok_load_setup ! ok - continue

这是0.12内核boot.s的部分代码,利用bios的int 0x13功能2从启动盘读取head代码
DH-磁头号;DL-驱动器号;CH-10位磁头号的低8位,CL-位7、6是磁道高2位

问题:代码中的磁头号及磁道号时如何确定的?
...全文
119 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
masmaster 2011-03-21
  • 打赏
  • 举报
回复
bios int 13H就这么规定的。楼主可以参阅bios手册。
「已注销」 2011-03-21
  • 打赏
  • 举报
回复
对于磁道号,我认为因为一个磁道有80个扇区,而boot.s是从第2个扇区开始读的,所以磁道号也为0
「已注销」 2011-03-21
  • 打赏
  • 举报
回复
对于软盘,磁头号即面号,因为一个面用一个磁头来读写

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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