当前位置: 代码迷 >> 嵌入开发 >> 8086裸机是怎么启动的
  详细解决方案

8086裸机是怎么启动的

热度:3423   发布时间:2013-02-26 00:00:00.0
8086裸机是如何启动的?
一说到计算机启动,很多人就会提到BIOS,像这位朋友一样http://wenwen.soso.com/z/q390926708.htm
写的应该算比较清晰了,很有条理。但最首要的问题,这个BIOS代码不是保存在ROM中吗?而8086计算机是从RAM中取指令的,RAM掉电后所有的数据都没了,CPU还怎么跳转到某某指令?所以我觉的最开始这一步有点说不过去。
我猜想8086计算机应该不止一个处理器,至少要有个“协处理器”,计算机加电后启动的不是8086CPU而是这个“协处理器”,由这个处理器将BIOS代码加载到RAM中,然后再向8086CPU的VCC端口输出高电平,这样才把控制权交给8086,接着8086就可以从RAM中取指令,进行下面的自检了。

  但是我看了下电信学院的《微型计算机原理与接口技术》,这本书是以8086处理器为蓝本,对8086计算机的体系结构进行了比较详细的论述。有存储器啊,IO啊,中断啊还有神马时钟啊,但就是没看见神马BIOS,压根就没提到“协处理器”。在最小系统模式和最大系统模式中都没有这些类似的芯片。是不是我猜错了啊?

求专业解答!
本人吃了饭没事干,正在琢磨这怎么搭建一台8086古董计算机,求技术支持。
由于本人刚来CSDN不就,积分很少,各位见谅啊。

------解决方案--------------------------------------------------------
上电,地址线为FFFF0H(硬件逻辑设定如此),这里为一跳转指令,转向执行BIOS。我当年做过拔掉BIOS的8086故障检测卡,单步执行,通过7段码数码管观察地址线和数据线的状态!呵呵,现在那卡还在,也是古董了!
------解决方案--------------------------------------------------------
对于指令来说,一般情况下都是只读就可以了, 比如操作系统一般都会把程序的代码段设置为只读,虽然这个代码是动态加载都RAM中的;

代码执行的过程中,如果需要把一些数据保存起来,那么只能把这些数据放在RAM中,如果对ROM会只读属性的RAM执行写操作, 会发生中断。

BIOS的ROM在逻辑上确实在内存空间中,访问里面的内容跟在RAM中一样,除了不能写,BIOS中的代码加载磁盘引导区中的代码到RAM中,并跳转到那里继续执行, 于是计算机的控制权就转移到了操作系统;

CPU复位后执行的第一条指令的地址是固定的, 这个地址刚好指向BIOS中