在CPU级别如何执行程序?
我知道这是一个非常普遍的问题。但是我的想法却不同。我将在这里尝试阐明。 据我所知,由于ALU及其晶体管(如果我们在硬件级别上),CPU执行的每条指令都是机器语言,并且所有CPU都可以执行一些算术运算。 但是,此类型比理解起来容易。因此,如果所有CPU都在执行加,减等操作,那么用这些算术运算如何执行一个程序,比如说打印Hello World的JAVA程序? 我的意思是该程序如何转换为CPU的附加功能? 附言:如果此问题不适用于本网站,则表示歉意。 - - -第二部分 - - - 好的。感谢所有人以如此迅速的热情回答。我认为最好修改一下我的问题,而不是去评论所有答案并再次询问。 就是这样 首先,所有人都专门回答了Hello World的示例。这是我的错。我应该保持这种通用。您好,世界示例带来了输出设备的问题,以及它的处理方式不仅限于CPU,而这在您的答案中是正确的。 你们中的许多人也注意到我,CPU的作用不只是加法。我同意这一点。我只是没有写,而是一直假设。据我了解,这是一个过程: 从内存中读取指令(使用数据和地址总线以及程序计数器的内容) 将数据存储在CPU内部的寄存器中 现在,ALU当然会在解码指令后进行算术运算,或者如果它是if指令,则进行跳转 然后在需要时与其他资源进行通信,例如与输出设备等等。目前,除此以外的过程都是微不足道的。 因此,在步骤3中,CPU对一条指令进行解码并决定执行算术运算(此处我们假设没有其他操作要执行,例如跳转当前指令。由于算术运算大部分已完成。因此,我们坚持这样做)这就是我的可视化结束的地方。我的程序中的指令如何仅仅是CPU的算术运算。它执行该算术运算,并且该指令达到其目的。 希望这次我能说清楚。 PS:我在这里假设一个很大的假设,即ALU不仅限于我们在程序中执行的实际算术运算,而是执行所有指令(现在为二进制形式),方法是将它们相加或相减,以得出它们的结果。屈服。如果我在这里错了,那么下面的答案可以正确回答我的问题。