BIOS

全称 Base Input & Output System,基本输入输出系统
以前Intel 8086只有20条地址线,只可以访问1MB的内存空间(0x00000~0xFFFFF),这1MB的内存空间被分成多个部分,如下:

地址范围功能
FFFF0~FFFFF,16BBIOS入口地址,此处的内容是jmp f000: e05b
F0000~FFFEF,64KB-16BBIOS范围是F0000~FFFFF共64KB
C800~EFFFF,160K
C0000~C7FFF,32KB显示适配器BIOS
B8000~BFFFF,32KB文本模式显示适配器
B0000~B7FFF,32KB黑白显示适配器
A0000~AFFFF,64KB彩色显示适配器
9FC00~9FFFF
7E00~9FBFF
7C00~7DFF,512BMBR被加载到此处,共512字节
500~7BFF
400~4FF
000~3FFF,1KBInterrupt Vector Table(中断向量表)

1、为什么是“基本”?
BIOS的主要工作是检测、初始化硬件,硬件提供了一些初始化的功能调用,BIOS直接调用,它还建立了中断向量表,这样就可以通过“int 中断号”来实现相关的硬件调用,由于BIOS只有64KB大小,不可能把所有硬件IO操作实现得面面俱到,而且在实模式下也没有必要实现那么多,所以叫做基本输入输出系统。

2、BIOS是如何被唤醒的?
由硬件ROM唤醒,此ROM被映射在1MB的顶部0xF0000~0xFFFFF,入口地址是0xFFFF0。

3、知道了BIOS在哪里后,CPU如何去执行它?
开机的瞬间,CPU的cs:ip寄存器被强制初始化成0xF000:0xFFF0,(因为在实模式下的段基址要乘以16,即左移4位,所以cs中是0xF000),所以当成地址变为0xFFFF0,此地址便是BIOS的入口地址,该地址处的内容是,jmp f000:e05b,所以推断出BIOS要做事的代码的地址是0xFE05B。

然后BIOS便不停地检测内存、显卡等外设信息,当检测通过,并初始化好硬件后,开始在内存中0x000~0x3FF处建立数据结构,中断向量表IVT并填写中断例程

最后,BIOS把接力棒交给MBR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值