整理头文件及程序说明

  • 头文件

        将一系列的函数声明放在一个头文件里,在分割出来的文件里面分别使用 #include<bootpack.h> 引用,减少重复声明。

  • 程序说明:

      GDTR 的低16位是段上限,它等于“GDT的有效字节数减一“,剩下的高32位,代表GDT的开始地址。

       为了保存段的大小,段的起始地址,段的管理属性,声明了结构体segment_descriptor。段的地址使用32位表示,是段的基址,结构体中又使用了base_low(2个字节),base_mid(1个字节),base_high(1个字节)三段,合起来刚好是32位。

 

         由于段上限只有两个字节,表示一个段有多少个字节,段上限最多只能指定1MB为止。所以intel设置了一个标志位Gbit,但标志位为1时,limit的单位不解释成字节,而是解释成一页(4KB)。1M*4KB=4GB,所以可以指定4GB的段。

 

 

 

 

      

        按照文章的说法,前四个字节应该是段的起始地址,其中base_low占2字节,base_mid占1字节,base_high占一个字节。段上限占20个位,第四五个字节是limit_low,加上第六个字节limit_high的低四位总共20位用于存储段上限。Limit_high的高四位和第7个字节用于存储段属性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值