关于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位

问题:代码中的磁头号及磁道号时如何确定的?
...全文
47 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
masmaster 2011-03-21
bios int 13H就这么规定的。楼主可以参阅bios手册。
回复
proghua 2011-03-21
对于磁道号,我认为因为一个磁道有80个扇区,而boot.s是从第2个扇区开始读的,所以磁道号也为0
回复
proghua 2011-03-21
对于软盘,磁头号即面号,因为一个面用一个磁头来读写
回复
相关推荐
发帖
Linux_Kernel
创建于2007-08-27

4116

社区成员

Linux/Unix社区 内核源代码研究区
申请成为版主
帖子事件
创建了帖子
2011-03-21 08:32
社区公告
暂无公告