2-BIOS

BIOS

内存

无论什么汇编寻址都无外乎3中,立即数,寄存器和内存。最复杂的当属于内存。因为程序都是存储于内存中的,所以在将第一个运行的程序(BIOS)时先介绍内存。

容量

8086的内存有1MB的容量,但是这1MB分别映射到不同的器件上。

组成

内存由三部分组成:

  • ROM
  • 外围板卡
  • 内存条

映射范围及用途

器件范围用途
ROM0xf0000-0xfffffBIOS固件
外围板卡0xa0000-0xeffff外围器件的数据
内存条0x00000-0x9ffff存储数据

计算机架构

  1. 硬件层
  2. BIOS
  3. 操作系统
  4. 软件层

BIOS功能

计算机上电后***第一个运行的程序***,执行完后把控制权交给***主引导程序***

  1. 检测硬件状态,检测通过后进行硬件初始化
  2. 在内存建立中断向量表(提供了硬件访问方法)

为什么BIOS是第一个运行的程序

处理器中有一个reset的引脚,每当这个引脚被触发时,处理器都会执行一次硬件的初始化,并且会将内部所有的寄存器初始化到一个阈置的状态(电路设计)。

8086在上电后,CS段寄存器会被初始化为0xffff,其他所有寄存器都会初始化为0。那么第一条指令的物理地址是0xffff0,这个位置会有一个跳转指令。跳转到BIOS程序的位置。

后续的x86没有延续这个方案,但是思路都是一致的。

BIOS控制权转移

  1. 安装设置扫描存储介质
  2. 发现主引导区后,将主引导程序加载到内存
  3. 主引导程序的入口地址是0x7c00
  4. 调用主引导程序

总结

BIOS是一种固件,直接固化在内存中,这段内存分配给ROM,所以掉电不会丢失。电路设计使的上电后程序首先执行BIOS程序,BIOS检查硬件,寻找主引导程序,并将主引导程序加载到内存中起始地址为0x7c00的位置。跳转到该位置开始执行主引导程序。

关于作者

大四学生一枚,分享数据结构,面试题,golang,C语言等知识。QQ交流群:521625004。微信公众号:后台技术栈。
image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值