CPU启动:执行第一条指令的奥秘

需积分: 44 4 下载量 18 浏览量 更新于2024-09-26 收藏 37KB DOC 举报
"CPU在启动过程中执行的第一条指令通常存储在ROM中,而非RAM,因为RAM中的信息在断电后会丢失。在8086时代,CPU执行的BIOS第一条指令的地址是0XF000:FFF0H,这是通过设置CS寄存器为0XF000实现的。随着技术发展,80386及后续处理器,为了不割裂地址空间,CPU会在实模式下启动,CS寄存器被设置为F000h,但其shadow register的Base被设置为FFFF0000h,使得第一条指令的物理地址变为FFFFFFF0h。这条指令通常是一个远跳转到F000:XXXX,以开始执行BIOS代码。" 在计算机启动过程中,CPU执行的第一条指令是一个至关重要的步骤,它标志着系统的初始化阶段开始。早期的8086系统中,由于内存限制,BIOS(基本输入输出系统)被存储在ROM中,位置固定在内存地址的高端,即0FFFF0H。这个地址是由CS(代码段)寄存器设置为0XF000,偏移量为FFF0H来确定的。第一条指令通常是一个跳转指令,用于控制启动流程的继续。 随着技术进步,80386及更高级别的处理器引入了更大的地址空间。为了保持兼容性并避免地址空间被分割,CPU在复位后仍然将CS设置为F000h,但它的shadow register(影子寄存器)的Base设置为FFFF0000h,而不是理论上的000F0000h。这样做使得第一条指令的物理地址变为最高位的4GB地址FFFFFFF0h。尽管如此,执行的仍然是一个类似于8086时代的远跳转指令,例如 jmp F000:E05B,来启动BIOS执行流程。 这条远跳转指令在执行后会更新CS寄存器,将其设置为F000h,从而开始执行BIOS中的实际启动代码。BIOS的主要任务包括硬件自检(POST,Power-On Self Test)、初始化系统设备、加载引导装载程序等,这些步骤都是操作系统能够接管前必须完成的。 总结来说,CPU在启动时执行的第一条指令是BIOS的一部分,它位于ROM中,确保即使断电也能保持不变。这个指令的执行标志着系统启动过程的开始,通过跳转到BIOS的其他部分,逐步进行系统的初始化工作,最终引导操作系统加载。这个过程在不同世代的CPU中有所变化,但其核心目的始终不变:确保计算机系统能够正确、有序地启动。
2023-06-04 上传