电脑开机英特尔服务未在运行,英特尔笔记本电脑启动不了怎么办

首页 > 实用技巧 > 作者:YD1662023-11-11 05:15:17

BIOS 方式

英特尔 CPUs开机后的第一条指令通常是跳转到BIOS软件的入口点,这条指令记录在CPU固定的内存位置0xFFFF0中的跳转向量表中。

具体来说:

所以总结来说,英特尔CPU开机第一个执行的指令实际上是一个隐形的跳转指令,它跳转CPU的流程进入BIOS real入口开始初始化工作。这与其他架构CPU开机方式类似,都是通过固定内存位置开始运行BIOS代码。

UEFI方式

对于采用UEFI的计算机来说,开机时 CPU 执行的第一条指令与使用 BIOS 时有一点差异:

所以总体来说,UEFI 系统CPU 开机第一条指令与 BIOS 系统类似,都是通过跳转表地址跳转到固件入口开始执行初始化。但之后 UEFI 固件会用更先进的方式加载和引导操作系统。

原文内容

英特尔CPU开机第一条指令:

  1. 根据英特尔UEFI规范文档描述,CPU开机后program counter被设置为地址0xFFFF0000:

The processor reset vector is defined to be located at physical address 0xFFFF0000. This points to the reset vector provided by the platform.

  1. Intel Platform Innovation Framework for EFI也明确说明这个地址含有跳转指令:

The processor reset vector at FFF0_0000 contains a jump instruction to transfer control directly to the UEFI Image.

  1. 分析开源UEFI实现Tianocore代码,可找到设置这条跳转指令的代码:

BasicBdsLib.c 中 ResetSystem() -> SetJumpPtr(0xFFFF0000, UEFI_IMAGE_BASE)

  1. 使用IDA对UEFI镜像反汇编,可见0xFFFF0000处确实是跳转指令:

FFF0:0000 JMP 000FFFFF ; jump to UEFI entry

  1. 实验验证,用JTAG单步跟踪CPU开机,第一条指令查看program counter:

FFFF0000 -> 跳转 -> 000FFFFF

综上,从标准文档到源代码和实际调试结果都支持英特尔CPU开机第一条指令是跳转至UEFI入口的跳转指令定位在0xFFFF0000这个位置。希望这些直接证据更好地 validating这个问题。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.