BIOS简述

BIOS是计算机的基本输入输出系统,保存在主板ROM中,负责开机自检、硬件控制。本文介绍了BIOS的功能,以及系统引导流程,包括开机、验证引导扇区、加载MBR和操作系统启动等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BIOS(Basic Input Output System,基本输入输出系统)

=================================================================

1.它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、系统设置、开机后自检程序和系统自启动程序。

2.主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

=================================================================

1.开机,从ROM运行BIOS程序,BIOS是厂家写好的。

2.BIOS程序检查软盘0面0磁道1扇区,如果扇区以0xaa55结束,则认定为引导扇区,将其512字节的数据加载到内存的07c00处,然后设置PC,跳到内存07c00处开始执行代码。

3.以上的0xaa55以及07c00都是一种约定,BIOS程序就是这样做的,所以我们就需要把我们的os放在软盘的第一个扇区,填充,并在最末尾写入0xaa55.

4.nasm -f bin boot.asm:生成的其实是一个512字节的二进制文件如何把它放在软盘的第一个扇区?直接拷贝是不可以的(涉及到文件系统以及FAT12文件系统)。

5.dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc:if代表输入文件,of代表输出设备,bs代表一个扇区大小,count代表扇区数,conv代表不作其它处理,a.img是虚拟软盘。

6.为什么要org 07c00h这行代码?org是伪指令,不生成对应的二进制指令,只是汇编器使用的,在链接时使用,不是汇编那步用的。即boot.bin文件里面,压根没有07c00h这个东西,BIOS不是一味这条指令才把代码放在07c00h。这条指令的作用:告诉汇编器,当前这段代码会放在07c00h处。所以,如果之后遇到需要绝对寻址的指令,那么绝对地址就是07c00h加上相对地址。

--绝对地址:内存的实际地址(这里不考虑内存分页一类逻辑地址)

--相对地址:当前指令相对第一行代码的位置

==================================================================

系统引导过程主要由以下几个步骤组成(以硬盘启动为例) 
1、 开机; 
2、 BIOS加电自检(POST——Power On Self Test),内存地址为0fff:0000; 
3、 将硬盘第一个扇区(0头0道1扇区,也就是Boot Sector)读入内存地址0000:7c00处; 
4、 检查(WORD)0000:7dfe是否等于0xaa55.若不等于则转去尝试其他介质;如果没有其他启动介质,则显示 “No ROM BASIC” ,然后死机; 
5、 跳转到0000:7c00处执行MBR中的程序; 
6、 MBR先将自己复制到0000:0600处,然后继续执行; 
7、 在主分区表中搜索标志为活动的分区。如果发现没有活动分区或者不止一个活动分区,则停止; 
8、 将活动分区的第一个扇区读入内存地址0000:7c00处; 
9、 检查(WORD)0000:7dfe是否等于0xaa55,若不等于则显示 “Missing Operating System”,然后停止,或尝试软盘启动; 
10、 跳转到0000:7c00处继续执行特定系统的启动程序; 
11、 启动系统。 

(冒号:隔开两个十六进制数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值