当前位置: 代码迷 >> 汇编语言 >> 请问x86的启动过程,cpu怎么自举第一条指令
  详细解决方案

请问x86的启动过程,cpu怎么自举第一条指令

热度:165   发布时间:2016-05-02 04:27:53.0
请教x86的启动过程,cpu如何自举第一条指令?
如题,x86上电启动的时候,如何知道它自身应该从哪条指令开始执行呢(第一条指令)?
换句话说,是x86自身内部有某种例程,去外部的某个地址(例如bios)开始读取一段数据并作为指令来执行吗?

还是主板或者bios先启动,然后给cpu"喂"了一些初始化的指令?

这个过程究竟是什么样子的呢? 谢谢
------解决思路----------------------
你确实应该读一读〈x86汇编语言:从实模式到保护模式〉这本书。
------解决思路----------------------
cpu 初始加电后 CS:IP=FFFF:0000,这是 x86 的个约定吧,就从那里开始。
------解决思路----------------------
参考 《汇编语言》 -- 王爽 ”附注1“ + ”BIOS和DOS中断例程的安装过程“

------解决思路----------------------
http://bbs.csdn.net/topics/390998060

《The Intel 64 and IA-32 Architectures Software Developer's Manual》
------解决思路----------------------
主板的ROM运行完必要的测试后,会读入根据bios设定的开机顺序(比如A盘,U盘或者硬盘)的第一磁区(512bytes,也叫MBR boot sector),把它放入7c00:0的位置,然后控制权交给该处....
可以说,你能够处理(或编写)就是7c00:0的第一条命令

------解决思路----------------------
引用:
主板的ROM运行完必要的测试后,会读入根据bios设定的开机顺序(比如A盘,U盘或者硬盘)的第一磁区(512bytes,也叫MBR boot sector),把它放入7c00:0的位置,然后控制权交给该处....
可以说,你能够处理(或编写)就是7c00:0的第一条命令

很多主板支持Flash BIOS升级。
------解决思路----------------------
x86 reset后,cpu的电路自动load缺省地址的code,运行
------解决思路----------------------
刚开始工作时即reset后,cs=ffffh,ip=0000h,CPU从内存ffff0h单元中读取第一条指令
  相关解决方案