电脑中 CPU 是如何认识代码并执行指令的?

这里打一个比喻,你看看大海上船只之间通过打灯光沟通是什么样子的,电脑中的 CPU 执行代码也基本是类似的原理。

关键是约定一套信号协议。电脑 CPU 只按传入的二进制代码执行指令,商家约定好了一套指令体系,不管什么编程语言都通过某种方式把代码编译为 CPU 能懂的二进制指令指挥 CPU 工作。协议跟人与人的交流一样,是有规矩的。

再举个例子,发出一串指令,如果是以 1开头,则表示做什么,比如做加法,那么後面接着会发过来两个数,CPU 做加法后把结果存入特定的寄存器,程序会有后续指令去这个寄存器提取结果,放入指定的内存中,CPU 按照这样的约定解析传入的一连串二进制数据,并一一执行。

CPU 能直接做什么,根据这套指令体系来看,是不能直接做的,程序员负责编写完整解决方案让 CPU 能做出来,这就叫编程,整个指令序列叫程序。

CPU 不知道不管你什么语言代码,那是给人阅读的,不是给计算机阅读的,计算机只懂编译过的二进制指令,还必须是按照商家设计好的指令体系编制的指令序列才行。没有什么编程语言一定是高大上的,它好不好用在于编译器或解释器把这些人类代码翻译为机器码有多高明。

守恒律在这方面仍然起作用,你写的高级语言代码越少,翻译给机器执行的指令实际上越多。C 语言入门最基础的 hello world 程序,不要以为写的很短就很得意,这程序编译後的二进制机器码有 5K,printf() 函数的源代码有多长,可以自己去看看,但实际上你输出一个字符串用不着完整的 printf() 功能,这函数其实一个低效的解释型程序。

总的来说,CPU不是认识代码,而是记住代码,数据总线送过来一个指令,是什么如何执行,已经固化在CPU里了,如何执行和固化?是通过复杂的组合,以门,非门,与非门这三种复杂的组合,实现了复杂的逻辑关系。

 

转载请注明链接地址:荐爱小站 » 电脑中 CPU 是如何认识代码并执行指令的?

赞 (1) 赏 !

觉得文章有用就打赏一下吧,赠人玫瑰手有余香!

支付宝扫一扫打赏

微信扫一扫打赏