BIOS引导过程.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BIOS引导过程

1 引言 1.1 文档目的 对于电脑用户来说,打开电源启动电脑几乎是每天必做的事情,但计算机在显示这些启动画面的时候在做什么呢?大多数用户都未必清楚了。下面就向大家介绍一下从打开电源到出现Linux的登录窗口,计算机到底干了些什么工作,BIOS在其中起到什么作用。 电脑的启动过程中有一个非常完善的硬件自检机制。对于采用Award BIOS的电脑来说,它在上电自检那短暂的几秒钟里,就可以完成100多个检测步骤。 1.2 术语和缩写 术语或缩写 描述 BIOS 基本输入/输出系统 CMOS 保存系统当前的硬件配置情况和用户的设定参数 POST Power on self test, 加电自检 2 基本概念 2.1 BIOS BIOS即基本输入/输出系统,它是被固化在计算机ROM芯片上的一组程序。它是微机系统软、硬件之间的一个可编程接口,通过跳线开关和系统配带的驱动程序盘,可以对ROM进行重写,方便地实现BIOS升级。 2.2 CMOS CMOS是一块可读写的RAM芯片,保存系统当前的硬件配置情况和用户的设定参数;BIOS中装有一个程序称为“系统设置程序”,设置CMOS中的参数;CMOS由电池供电,断电后数据会丢失;前16字节用于存储时间 2.3 AMI、AWARD和PHONIX三大主流厂商 开发BIOS是一件技术含量很高的工作,从业人员也少;一流主板厂商的BIOS研发人员,年薪往往是以七位数字来计算的! 3 BIOS主要功能 BIOS的主要功能概括来说包括如下几部分: 1)POST 加电自检,检测CPU各寄存器、计时芯片、中断芯片、DMA控制器等 2)Initial 枚举设备,初始化寄存器,分配中断、IO端口、DMA资源等 3)Setup 进行系统设置,存于CMOS中。一般开机时按Del或者F2进入到BIOS的设置界面。 4)常驻程序 INT 10h、INT 13h、INT 15h等,提供给操作系统或应用程序调用。 5)启动自举程序 在POST过程结束后,将调用INT 19h,启动自举程序,自举程序将读取引导记录,装载操作系统。 4 BIOS源代码结构分析 4.1 AMI BIOS代码结构分析 AMI BIOS的代码主要分成三大部分:核心代码、芯片代码和OEM代码。 核心代码目录结构如下: 4.2 AWARD BIOS代码结构分析 AWARD BIOS的源代码为进行目录分类,所有的源码、编译链???工具、生成的中间文件都在同一个目录中。没有AMI代码结构组织得好。 5 BIOS常驻程序介绍 开机自检程序运行完后,将撤出内存。BIOS提供了一组常驻程序,主要包括INT 10h,INT 13h,INT 15h等等中断服务例程,提供给操作系统或应用程序调用,下面介绍几个常用的中断服务例程。X86提供了256个中断,中断向量表在内存的起始地址1024byte上,每个中断向量地址占用4个字节。 5.1 INT 13h中断例程 INT 13h为BIOS提供的对磁盘进行操作的中断例程,包括如下几种调用方式: 1)INT 13H,AH=00H 软、硬盘控制器复位; 2)INT 13H,AH=02H 读扇区说明; 3)INT 13H,AH=03H 写扇区; 4)INT 13H,AH=04H 检测扇区; 以上调用方法详细的说明请参考相关技术文档。 举例:读取软驱0面0道1扇区的内容到0:200 mov ax,0 /* 初始化ax寄存器为0 */ mov es,ax /* 将es置为0 */ mov bx,200h /* 将bx设置为200h ,此时es:dx = 0:200,为内存地址*/ mov al,1 /* al保存扇区数 */ mov ch,0 /* ch保存磁道号 */ mov cl,1 /* cl保存扇区号 */ mov dl,0 /* dl保存驱动器,0表示软驱A */ mov dh,0 /* dh保存磁头号 */ mov ah,2 /* ah保存int13要调用的功能号,2表示读 */ int 13h /* 调用int13中断 */ 入口参数: ah=int 13h的功能号 al=读取的扇区数 ch=磁道号 cl=扇区号 d

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档