BIOS在内存中加载中断向量表和中断服务程序

   
BIOS程序被固化在计算机主机板上的一块很小的ROM芯片里,一般情况下不同主机板所有的BIOS是不同的,


 但就启动部分而言,各种类型的BIOS的基本原理却是大致相同的。以一个8K的BIOS为例,其所占的地址段


 为0xFE000~0xFFFFF。此时CS:IP已经指向了0xFFFF0这个位置,BIOS就可以启动了。之后BIOS会检测显卡
 ,内存等等硬件。


在这段期间,有一个对启动(boot)操作系统很关键的工作,就是BIOS在内存中建立中断向量表

和中断服务程序。


        BIOS在程序最开始的位置,即0x00000,用1K的内存空间(0x00000~0x003FF)构建中断向量表,
 并在紧挨他的位置用256字节的内存空间构建BIOS数据区(0x00400~0x004FF),在大约56K的位置(0x0E2CE
 
)加载了8K左右的与中断向量表相应的若干中断服务程序。



        中断向量表中有256个中断向量,每个中断向量占有4个字节空间,其中2个字节是CS的值,2个是
IP的值,每个中断向量都指向一个具体的中断服务程序。


 注释:
        1 0x00100是256个字节,那么0x004000就是4*256个字节,即1024个字节,为1K。从0x00400开始
 计算,1K的高端地址不是0x00400,是0x00400-1,即0x003FF。 
BIOS在内存中加载中断向量表和中断服务程序  
 .

2013-06-25 16:25 386人阅读 评论(0) 收藏 举报 
.

 分类: 
 
汇编编程学习(80)   


   
BIOS程序被固化在计算机主机板上的一块很小的ROM芯片里,一般情况下不同主机板所有的BIOS是不同的,


 但就启动部分而言,各种类型的BIOS的基本原理却是大致相同的。以一个8K的BIOS为例,其所占的地址段


 为0xFE000~0xFFFFF。此时CS:IP已经指向了0xFFFF0这个位置,BIOS就可以启动了。之后BIOS会检测显卡
 ,内存等等硬件。

        

在这段期间,有一个对启动(boot)操作系统很关键的工作,就是BIOS在内存中建立中断向量表

和中断服务程序。



        BIOS在程序最开始的位置,即0x00000,用1K的内存空间(0x00000~0x003FF)构建中断向量表,
 并在紧挨他的位置用256字节的内存空间构建BIOS数据区(0x00400~0x004FF),在大约56K的位置(0x0E2CE
 
)加载了8K左右的与中断向量表相应的若干中断服务程序。



        中断向量表中有256个中断向量,每个中断向量占有4个字节空间,其中2个字节是CS的值,2个是
IP的值,每个中断向量都指向一个具体的中断服务程序。


 注释:
        1 0x00100是256个字节,那么0x004000就是4*256个字节,即1024个字节,为1K。从0x00400开始
 计算,1K的高端地址不是0x00400,是0x00400-1,即0x003FF。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Farmwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值