免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 813 | 回复: 5
打印 上一主题 下一主题

bootsect.S [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-09 17:11 |只看该作者 |倒序浏览
该文件的100行左右(2.4.*内核):
        movw        %cx, %fs                # %fs = 0
        movw        $0x78, %bx                # %fs:%bx is parameter table address
        pushw        %ds
        ldsw        %fs: (%bx), %si                # %ds:%si is source
        movb        $6, %cl                        # copy 12 bytes
        pushw        %di                        # %di = 0x4000-12.
        rep                                # don't worry about cld
        movsw                                # already done above
        popw        %di
        popw        %ds
       
        movb        $36, 0x4(%di)                # patch sector count
        movw        %di, %fs: (%bx)
        movw        %es, %fs:2(%bx)

请问各位高人,后三句完成什么功能?

[ 本帖最后由 lhjgood 于 2005-12-9 17:17 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-12 14:18 |只看该作者
不可能没人知道吧,高人指点一下哦!

论坛徽章:
0
3 [报告]
发表于 2005-12-12 15:17 |只看该作者
哦,看懂了,自己来回答吧!

movb   $36, 0x4(%di)              # patch sector count 修正扇区计数值
movw  %di, %fs: (%bx)           #修改fs:bx(0000:0x007处磁盘参数表的地址为0x9000:0x4000-12
movw  %es, %fs:2(%bx)         #在上面紧接的地址放 es 的值,也就是 INITSEG=0x9000

论坛徽章:
0
4 [报告]
发表于 2005-12-12 15:27 |只看该作者
在DOS 实模式下,0000:0522是磁盘参数表DPT。
那3行大概就是COPY 原来的DPT到新地方,然后改一个参数,在让新DPT生效(设置指针)。

我觉的没有必要了解这些东西。

论坛徽章:
0
5 [报告]
发表于 2005-12-14 09:35 |只看该作者
楼上说的有道理!
不过或许这对将来开发嵌入式时有帮助的!
对一个系统熟悉,是整体的,而不是具于某几个方面,我感觉那些高人之所以被大家称为高人,就是他们掌握的知识超出其他人能够想象的深度! 我是这样理解的。 :)

论坛徽章:
0
6 [报告]
发表于 2005-12-14 10:57 |只看该作者
我觉得你说的“高人”,不是“他们掌握的知识超出其他人能够想象的深度”,
而是他们获得还不掌握的知识的速度,能力,效率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP