x86汇编语言从实模式到保护模式 -- 开机过程

预备知识:

1 Intel 8086内存空间分布:

地址

对应设备

0x00000-0x9FFFF

内存条

0xA0000-0xEFFFF

外围设备

0xF0000-0xFFFFF

主板BIOS芯片

在Intel 8086环境下,内存分布如上表所示:

    地址0x00000-0x9FFFF对应内存条,即访问该范围地址实际是访问内存条。

    地址0xA0000-0xEFFFF对应外围设备,即访问该范围地址实际是外围设备。

          外围设备是一个集合,根据不同的设备对该区域进行了划分;其中0xB8000-0xBFFFF对应显卡的内存空间,即显存,操作显存意味着控制屏幕的显示内容。

    地址0xF0000-0xFFFFF对应主板BIOS芯片,即访问该范围地址实际是访问BIOS芯片。

 

2 CPU

CPU有一个RESET引脚,每当处理器加电或RESET引脚的电平由低变高时CPU将会执行硬件处理化以及一个可选的内部自测试,然后将所有寄存器的内容初始化到预置状态。

Intel 8086的复位会将CS寄存器初始化为0XFFFF,其它所有寄存器初始化为0x0000。

注意: 8086之后的处理器未延续这种设计

 

 

3 BIOS

基本输出输入系统  Basic Input Output System

BIOS是预先写入到主板芯片的一个程序,用于检测硬件状态以及加载启动程序。

 

4 硬盘的引导扇区

硬盘的第一个扇区为0面0道1扇区,或0头0柱1扇区,也称之为主引导扇区。

如果计算机的设置是从硬盘启动,BIOS将读取主引导扇区的内容并将其加载到内存地址0x0000:0x7C00处,然后使用jmp指定跳转过去。

 

5 显卡的模式

显卡的工作模式分为文本模式与图形模式,可以通过指定访问显卡,设置其工作模式。

图形模式:

    显卡控制显示器的最小单位是像素,一个像素对应显示器上的一个点。

    显存以某种颜色格式(例如真彩色)存储着每一个像素对应的颜色。

    显卡周期性的从显存中提取颜色数值,并把它们按照顺序以相同的颜色显示在显示器上。

    真彩色:使用3个字节标识一个像素,其可以标识16777216(2^24=16777216)种颜色

文本模式:

    (个人推测: 可能是显卡将文本模式的数据转换为图形模式的数据,然后传递给显示器;

          这样看来显卡自身有着一套处理程序,而且是独立于CPU进行运行的,因为只需要CPU将数据写入显存,而不需要CPU从显存中取出数据传递给显示器;

          其他的外围设备可能也各自有着独立的处理程序,CPU仅仅是向外设备传递信息或发送数据,外围设备根据信息或数据自行进行处理)

    由于历史原因,所有在个人计算机上使用的显卡,在加电自检后都将初始化到80x25的文本模式(25行,每行80个字符,共2000个字符)

    文本模式下使用ASCII码作为显示字符,且用2个相邻字节表示一个字符。

    第一个字节用于指定显示的字符,存放的是字符的ASCII码

    第二个字节用于指定字符的显示属性,低4位为前景色(字符颜色),高4位为背景色。

    前景色最高位是高亮位 (I),背景色最高位是闪烁位(K);它们的剩余3位为红(R)绿(G)蓝(B),颜色表:

 

 

开机过程(8086环境):

1 当按下开机按钮后,触动CPU的RESET引脚,随后CPU复位

2 CPU复位后,CS为0xFFFF,IP为0x0000;

   此时CPU执行0xFFFF0处指令,该地址位于BIOS的地址范围内,该指令通常是跳转指令,随后BIOS进行硬件检测等功能(例:通过按键进入BIOS操作界面)

3 BIOS程序结束前将读取主引导扇区内的内容并加载到内存的0x07c00处,随后通过跳转指令从0x07c00处开始执行指令

4 根据主引导扇区内的代码决定下一步的操作,例如加载Windows、Liunx系统;或可以将自己的代码写入主扇区,从而通过CPU直接运行我们自己的代码,比如向显存写入数据等。。。(本书通过该方式引导我们学习)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值