请教x86的启动过程,cpu如何自举第一条指令?

idtrak 2015-03-13 10:39:28
如题,x86上电启动的时候,如何知道它自身应该从哪条指令开始执行呢(第一条指令)?
换句话说,是x86自身内部有某种例程,去外部的某个地址(例如bios)开始读取一段数据并作为指令来执行吗?

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

这个过程究竟是什么样子的呢? 谢谢
...全文
1435 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wingwf2000New 2016-08-25
  • 打赏
  • 举报
回复
赵4老师 2015-03-19
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
Intel CPU:实模式,CS=FFFF,IP=0000,即从地址FFFF:0000处开始执行BIOS中的机器指令。
正解!
笨笨仔 2015-03-18
  • 打赏
  • 举报
回复
BIOS是计算机系统的基础,它与硬件直接相连,又是硬件与软件的接口。 开机从BIOS程序运行,自检、自举,完成后将系统引导地址写入内存,并将控制权交给系统,从而开始系统启动过程。
heraldww 2015-03-18
  • 打赏
  • 举报
回复
每个cpu都有复位矢量啊,指向某个地址,去那个地方取第一个指令 在计算机上,这个地址一般就是bios的地址空间
赵4老师 2015-03-17
  • 打赏
  • 举报
回复
Intel CPU:实模式,CS=FFFF,IP=0000,即从地址FFFF:0000处开始执行BIOS中的机器指令。
ArthurKingYs 2015-03-14
  • 打赏
  • 举报
回复
这个发错地方了吧 坐等大神了
schlafenhamster 2015-03-14
  • 打赏
  • 举报
回复
各种cpu 只有2种reset 地址 0xFFFF 或 0x0000
worldy 2015-03-13
  • 打赏
  • 举报
回复
当然是bios先启动了,没有bios别的都免谈
worldy 2015-03-13
  • 打赏
  • 举报
回复
硬件决定的,复位后,PC寄存器会由硬件指定一个地址,所有的CPU都这样,8086好像是从0xfffff地址开始吧(忘记了),一般在开始的地址位置安排一条跳转指令,跳转到正式的程序入口

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧