浅谈-计算机加电后的启动过程(一)

加载BIOS

当PC的电源打开后, 80x86结构的CPU将自动进入实模式.并且CPU的 cs:ip 寄存器被强制初始化为 0xF000 : 0xFFF0.

先抛出来个问题, 为什么 cs:ip 寄存器会被初始化为0xF000 : 0xFFF0 ?

继续往后看,当主机加电后,第一个运行的软件是BIOS,但是此时由于计算机刚加电,内存里还没有数据,所以BIOS并不是放在内存中的,而是放在ROM(只读存储器).而BIOS由硬件来加载,被加载到 0xF0000~0xFFFFF处.

上面提到过,cs:ip被初始化为0xF000 : 0xFFF0,即指向0xFFFF0这个地址,也就是说,当加电后计算机执行的第一条指令的地址为0xFFFF0.但是实模式下只能访问1MB内存,此时距离1MB内存就剩下16字节, 这16字节的内容是什么呢? jmp f000: e05b 是一个跳转指令,跳转到BIOS的加载地址去执行BIOS程序.

BIOS的作用

主要是进行硬件的诊断、检测和初始化。比如检测内存、显卡等外设信息, 初始化硬件等。 然后在内存中 0x000~0x3FF出建立数据建构, 中断向量表IVT并填写中断例程。最后一项工作: 校验启动盘中位于0盘0道1扇区中的内容。

BIOS->MBR

为什么BIOS的最后一项工作是校验启动盘中位于0盘0道1扇区中的内容呢?

emmm,可以说是约定吧。其实接下来,是要开始加载MBR了,MBR在那个扇区都可以,不一定非要在第一个扇区。 但是如果没有约定,BIOS需要检查电脑中的所有存储设备,去判断它这个扇区是不是存在可执行的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值