8086的启动过程

2024-01-09 17:08
文章标签 启动 过程 8086

本文主要是介绍8086的启动过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1 8086的启动过程
      • 1.1 8086启动时的寄存器情况
      • 1.2 BIOS
      • 1.3 8086启动的整体流程

1 8086的启动过程

1.1 8086启动时的寄存器情况

8086处理器在启动或者重启的时候,会对寄存器执行一个初始化的操作。初始化后的寄存器信息如下:
CS:FF FF,其它的寄存器:00 00

1.2 BIOS

我们知道8086处理器一共有20根地址线,那么其访问空间就是1MB,如下:
在这里插入图片描述
最顶端的ROM(Read-Only Memory,只读存储器)中固化有我们的BIOS(Basic Input Output System,基本输入输出系统)。

上电后CPU就会执行地址为0xFFFF0处的代码,但是我们可以这里距离顶端只有16个字节,所以可执行的代码是非常有限的。所以,这个地址处存放的是一条跳转指令,跳转指令的内容如下:

jmp F000:005C

注意,上面的代码执行完毕会将CS的值设置为F000,IP的值设置为005C。也就是说处理器会去F005C的地方去执行指令。

1.3 8086启动的整体流程

  1. 启动重启计算机,寄存器被初始化
    CS:FFFF IP:0000

  2. FFFF0—> jmp F000:005C
    CS:F000 IP:005C

  3. F005C—>依次执行BIOS中的指令

  4. BIOS所做的最后一件事:将主引导扇区中(0面0道1扇区,最后两个字节为硬盘主引导扇区的有效标志,必须为0x55,0xaa)的内容加载到7C00的位置处。

  5. BIOS的最后一条指令:JMP 0000:7C00
    CS:0000 IP:7C00

  6. 07C00—>执行主引导扇区中的指令
    1)加载操作系统自举代码到内存中
    2)通过一条跳转指令,使处理器去执行操作系统的自举代码


参考资料:

  1. 深度学习:C/C++、计算机体系

这篇关于8086的启动过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/587825

相关文章

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

SpringBoot整合InfluxDB的详细过程

《SpringBoot整合InfluxDB的详细过程》InfluxDB是一个开源的时间序列数据库,由Go语言编写,适用于存储和查询按时间顺序产生的数据,它具有高效的数据存储和查询机制,支持高并发写入和... 目录一、简单介绍InfluxDB是什么?1、主要特点2、应用场景二、使用步骤1、集成原生的Influ