首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux-0.11调试课程,setup.s中的硬盘参数表

2013-01-26 
linux-0.11调试教程,setup.s中的硬盘参数表setup.s获取显卡信息和硬盘信息,因为硬盘信息的地址在中断向量i

linux-0.11调试教程,setup.s中的硬盘参数表

        setup.s获取显卡信息和硬盘信息,因为硬盘信息的地址在中断向量int0x41处既0x0000:0104处,所以bootsect.s中把Image中的system部分移到了0x10000开始的地方,(而不是直接移到0x0000处,防止覆盖掉硬盘参数表的地址和硬盘参数表,因为硬盘参数表的地址在0x9fc0:0x003d处!),setup.s里面的代码取得硬盘参数表后再把0x10000处的system向下移动到0x0000处。


内存地址4*0x41=0x104开始的4个字节表示硬盘参数表的段地址(后面2字节)和偏移地址(前面2字节),  

lds    si,[4*0x41]指令之前DS为0x0000,之后为0x9fc0!

相关代码:

! Get hd0 data

    mov    ax,#0x0000
    mov    ds,ax
    lds    si,[4*0x41]
    mov    ax,#INITSEG
    mov    es,ax
    mov    di,#0x0080
    mov    cx,#0x10
    rep
    movsb

linux-0.11调试课程,setup.s中的硬盘参数表

热点排行