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_Logic_Hardware_Computer Architecture - Fatal编程技术网

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

Assembly 程序中的最后一条指令(计算机体系结构),assembly,logic,hardware,computer-architecture,Assembly,Logic,Hardware,Computer Architecture,在程序中执行最后一条指令后会发生什么? 让我们假设我有一个16字节的ram,一个程序适合这个空间 PC保存当前要获取的指令的地址,因此在最后一条指令中,我们是否有类似于停止指令的内容?这个STOP指令实际上做什么?它是如何用硬件逻辑实现的? 谢谢。大多数程序都是由其他程序(例如,操作系统的一部分)启动的,因此它们的最后一条指令要么将控制权返回给调用方,要么发送完成的信号 停止指令停止计算机(如关闭计算机);应该只允许操作系统执行这样的指令。事实上,可能是操作系统之外的某些东西试图执行这样一条指令

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

PC保存当前要获取的指令的地址,因此在最后一条指令中,我们是否有类似于停止指令的内容?这个STOP指令实际上做什么?它是如何用硬件逻辑实现的?
谢谢。

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


停止指令停止计算机(如关闭计算机);应该只允许操作系统执行这样的指令。事实上,可能是操作系统之外的某些东西试图执行这样一条指令,这就是我前面提到的“信号”。

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


停止指令停止计算机(如关闭计算机);应该只允许操作系统执行这样的指令。事实上,可能是操作系统之外的东西试图执行这样的指令就是我前面提到的“信号”。

在没有操作系统(OS)的嵌入式系统中,程序永远不会终止。你必须在某个地方提供一个无限循环,你的程序只有在电源关闭时才会终止

如果RAM中有一个程序,而您忘记了进行无限循环,那么该行为是未定义的。CPU将尝试执行RAM中超过程序的垃圾,并将崩溃,或执行垃圾,直到其程序计数器回滚到地址空间的另一个有意义区域并执行另一个子例程(如果程序计数器在整个地址空间中计数,甚至再次执行同一程序)


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

在没有操作系统(OS)的嵌入式系统中,程序永远不会终止。你必须在某个地方提供一个无限循环,你的程序只有在电源关闭时才会终止

如果RAM中有一个程序,而您忘记了进行无限循环,那么该行为是未定义的。CPU将尝试执行RAM中超过程序的垃圾,并将崩溃,或执行垃圾,直到其程序计数器回滚到地址空间的另一个有意义区域并执行另一个子例程(如果程序计数器在整个地址空间中计数,甚至再次执行同一程序)


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

如果没有操作系统怎么办?那么这个程序实际上就是操作系统。如果没有操作系统怎么办?那么这个程序实际上就是操作系统。