计算机启动过程(x86)

一、计算机是计算模型的实现(通用图灵机)

在这里插入图片描述

二、开机发生了什么?

在这里插入图片描述
1.x86PC刚开机时CPU处于实模式,和保护模式对应,实模式的寻址CS:IP(CS左移4位+IP),和保护模式不一样!Cpu还有一个模式是虚拟8086模式
2.CS=0xFFFF;IP=0x0000;
3.寻址0xFFFF0(内存中的ROM BIOS映射区),一开机唯一有代码的地方,只有有代码cpu才能从内存取指执行
4.检查RAM,键盘,显示器,软硬磁盘
5.将磁盘 0磁道0扇区(OS的引导扇区)读入内存的0x7c00处
0x7c00存放的代码就是从磁盘引导扇区读入的那512个字节
6.设置CS=0x07c0,IP=0x0000

CS:“Code segment”,即代码段寄存器,对应于内存中的存放代码的内存区域,用来存放内存代码段区域的入口地址(段基址)
CPU在执行指令时,通过代码寄存器CS和指令指针寄存器IP(instruction Pointer)来确定要执行的下一条指令的内存地址。PC起始跟CS:IP是一回事儿。

引导扇区代码bootsect.s

在这里插入图片描述
在这里插入图片描述
段地址ds=7c0 es=9000
偏移地址si=di=0 二进制左移4位,十六进制左移1位
生成两个地址 原地址ds:si=7c00 目的地址 es:si=90000
rep movw rep 重复执行,直到cx = 0(movw 移动1 个字;) 移动256个字=512字节
jmpi 间接跳转

1.先读入setup,打出开机logo

在这里插入图片描述
告诉磁盘从哪里开始读

2.调用13号中断,读入system

在这里插入图片描述

把执行权交给setup

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值