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