例如,假设我运行一个简单的if then else语句并拥有机器代码。执行该指令的计算机电路发生了什么变化?
答案 0 :(得分:3)
这取决于语言,但对于常规可执行文件(如从C / C ++获得),机器代码是CPU将解释为直接指令的位模式。如果您已经完成任何装配,这些机器语言指令会按照装配说明进行一对一映射(如果您获得了CS学位,您最终应该学习装配一两门课程,甚至可能需要在装配之间手动转换和使用CPU参考的机器语言。)
Java和C#等其他语言有点棘手,其中有一个中间的“字节代码”,在程序运行时被解释并转换为机器代码,允许它们实现某些平台独立性。
关于指令本身的作用,它取决于CPU,但其中一些可能是如下所示:
可能更多。
*寄存器是CPU中存在的非常小但非常快的存储空间;某些寄存器用于某些指令。其中之一是当前指令寄存器,它保存下一条要执行的指令的地址。直接更改此值将跳转到新地址,类似于goto
语句。
**堆栈是一个内部堆栈,可以以先后导入的方式存储和检索值。这就是函数调用的实现方式。像Hansel和Gretel一样,我们在我们身后留下一些面包屑,以便我们能够找到回家的路。
此外,还有两个关于如何组织教学集的“思想流派”:RISC和CISC(精简指令集计算机和复杂指令集计算机)。在RISC计算机中,功能较少的指令要少得多,程序员或编译器可以使用它们来执行更复杂的操作。在CISC计算机中,有更多更强大的指令,具有一些冗余。基于Intel的CPU是CISC。
另见: