Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 计算机开机时:它如何知道需要从哪个指令开始执行?_Assembly - Fatal编程技术网

Assembly 计算机开机时:它如何知道需要从哪个指令开始执行?

Assembly 计算机开机时:它如何知道需要从哪个指令开始执行?,assembly,Assembly,计算机开机时:它如何知道需要从哪个指令开始执行 首先是需要执行的BIOS程序。那么,那里到底发生了什么?我想知道加载操作系统之前的进程。我想它的细节比您可能想要的要多。正如您所料,它非常依赖于处理器 一般来说,处理器硬件以某种默认配置出现,然后从特定内存地址开始执行。之后会发生什么都取决于软件 通常执行的第一条指令是跳转到某种引导加载程序软件,然后准备硬件并加载下一个软件阶段。重复这个设置/加载过程,你想重复多少次就重复多少次,然后再重复一遍——你就在操作系统中了 一些处理器比其他处理器更具可配

计算机开机时:它如何知道需要从哪个指令开始执行


首先是需要执行的BIOS程序。那么,那里到底发生了什么?我想知道加载操作系统之前的进程。

我想它的细节比您可能想要的要多。

正如您所料,它非常依赖于处理器

一般来说,处理器硬件以某种默认配置出现,然后从特定内存地址开始执行。之后会发生什么都取决于软件

通常执行的第一条指令是跳转到某种引导加载程序软件,然后准备硬件并加载下一个软件阶段。重复这个设置/加载过程,你想重复多少次就重复多少次,然后再重复一遍——你就在操作系统中了

一些处理器比其他处理器更具可配置性,并且具有硬件绑定选项(或硅保险丝),可以控制一些引导参数。还有一些内置了ROM代码,在通电或芯片复位时执行。有些芯片内置内存,有些芯片可以自动设置外部内存,还有一些芯片甚至需要加载软件来执行最基本的引导任务


如果您能进一步澄清您的问题,我们可能会详细介绍您感兴趣的系统的具体过程。

大多数CPU都有硬编码,它确定硬件重置后要执行的第一条指令的地址。将此视为所有不可屏蔽中断之母。

最流行的两种选择是

  • 从固定地址开始(通常为0)

  • 从存储在固定位置的地址(重置向量)开始

这取决于特定的处理器