1.1-main函数执行之前的过程

本文详细介绍了计算机从开机到执行main函数的过程中,BIOS的作用和初始化过程,包括构建中断向量表、创建bios数据区及加载中断服务程序等关键步骤。

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

从开机到main函数的执行分三步完成:(1)启动bios,在内存中加载实模式下的中断向量表和终端服务程序

                                                                       (2)从启动盘加载操作系统程序到内存

                                                                       (3)为执行32的main函数做过渡工作

这篇博客先将第一步。

我们都知道cpu只能运行内存中的程序,但是内存中得内容是断电即消失的。那么开机后,空空如也的内存

最终是怎么管理起整个硬件的呢?

第一个执行的代码肯定不是软件来加载到内存中的,只能硬件实现。Intel cpu硬件逻辑设计为在加电的瞬间

强行将cs置为0xFFFF,ip置为0x0000,这样cs:ip指向的地址就是0xFFFF0.那么这个地址指向什么呢?

恰好,这就是bios的入口地址(bios的地址范围是0xFE000~0xFFFFF),而bios是闪存芯片做的ROM,上

面是有代码的,这样就可以运行bios程序了。

bios程序短小精深(8KB),这里不深究,只说明它完成的功能。通过bios

(1)在内存的0x00000~0x003FF构建中断向量表(256项)

(2)在内存的0x00400~0x004FF构建bios数据区

(3)在内存的0xE05B(约56KB)处开始加载8k左右的中断服务程序

 

这些代码就是操作系统打下江山的资本啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值