《自己动手写操作系统》——启动流程


本文接前文—— 《自己动手写操作系统》——制作一个简单的操作系统-CSDN博客内容,回答为什么机器开机后会执行这段汇编代码,这段代码有什么特殊之处?

背景知识

8086CPU

  • 处理器是16位,地址总线是20位,访存范围是1MB。

CS和IP寄存器

参考CS和IP寄存器的作用及执行分析_cs寄存器和ip寄存器的作用-CSDN博客得到这几点关键结论:

  • 任何时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出的执行指令
  • 8086CPU中的计算公式为 (CS << 4)|IP, 即CS左移4位,然后再加上IP

BIOS

  • CPU加电之后,硬件会把一个ROM芯片映射到地址空间0xF0000~0xFFFFF上。同时,会把CS寄存器的值改为0xFFFF,其余寄存器的值全部清零,因此此时CS:IP=0xFFFF:0x0000=0xFFFF0,即下一条即将执行的指令位置。而0xFFFF0~0xFFFFF之间其实只有16B的空间,这里只是一条跳转指令,跳转到BIOS真正的入口地址:
jmp far f000:e05b #- 这条
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值