setup.s

setup.s程序的主要功能:

1.利用BIOS中断将机器信息读取到0x90000 到0X901FC之间,给以后的程序使用。(即将bootsect.s程序覆盖)

2.关中断,并将整个系统模块从0x10000处开始搬到从0X00000处。

3.加载临时中断描述符表寄存器和全局描述符表,并开启A20信号线,重新设置8259中断控制器。

4.进入保护模式,设置段选择符,开始执行head.s

重点:

1.关于实模式和保护模式的区别

实模式是运行在8086的条件下的,寻址模式是平铺的,即CS,DS,ES,SS的地址是32位的实际地址。保护模式下的寻址模式是段式或者是页式的,CS,DS,ES,SS中存放的是段选择符。

2.关于段描述符和段选择符

段描述符是描述一个段的数据结构,长度为8个字节,主要含有3个主要字段:段基地址、段限长和段属性。而段选择符则相当于一个下标来获取段描述符的,整个系统的段都是保存在GDT(全局描述符表),LDT(局部段描述符表)中的,GDT,LDT则是一个段描述符数组,系统就是根据段选择符所表示的信息来确定段在数组中的位置和所在的数组,

GDT和LDT的基址分别存放在GDT寄存器和LDT寄存器中。

3.关于A20和8259中断控制器的编程是个小重点。

问题:

为什么要把系统从0X10000搬到0X00000处

把系统从0X10000处搬到0X00000处是为了让内存处于绝对物理对齐。在SETUP.S中,系统加载了一个临时的中断描述符表和一个临时的全局段描述符表,为接下来的运行保护模式进行好铺垫。接下来切换到保护模式,并设置好CS的段选择符,接下来就交与head.s进行控制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值