程序中的最后指令(计算机体系结构)

时间:2015-03-16 16:34:57

标签: assembly logic hardware computer-architecture

在程序中执行最后一条指令后会发生什么? 让我们假设我有一个16字节的ram,并且一个程序适合该空间。

PC保存当前要获取的指令的地址,所以在最后一条指令中,我们是否有类似STOP指令的东西?这个STOP指令实际上做了什么以及如何用硬件逻辑实现它? 谢谢。

2 个答案:

答案 0 :(得分:4)

在没有操作系统(OS)之类的嵌入式系统中,程序根本不会终止。您 在某处提供无限循环,并且只有在关闭电源时您的程序才会终止。

如果你有一个程序在RAM中并且你忘记进行无限循环,那么行为是 undefined 。 CPU将尝试执行RAM中经过程序的垃圾,并将崩溃或执行垃圾,直到程序计数器回滚到地址空间的另一个有意义的区域并执行另一个子程序(如果是,则再次执行相同的程序)程序计数器通过整个地址空间计数。)

(我所说的不适用于具有睡眠模式的微控制器,但是在80年代没有CPU没有睡眠模式,没有操作系统的系统(或者只有非常简单的系统)很常见)

答案 1 :(得分:2)

大多数程序都是由其他程序启动的(例如,操作系统的一部分),因此它们的最后一条指令要么将控制权返回给调用者,要么发送一个完成的信号。

STOP指令停止计算机(如关闭计算机);只允许操作系统执行这样的指令。实际上,可能是OS外部的某些操作执行这样的指令的尝试是" signal"我之前提到过。