关注+星标公众号,不错过精彩内容
0 Z! J! }; n& o( Y" \
x1aadibndwa64063119356.jpg
+ ], H- [5 m' _5 w" @- o8 ]+ k% H( ^# v
来源 | 码农的荒岛求生
! ?/ y( l5 Q- a {7 x准确的来说,CPU不认识也不理解任何东西,CPU就像一个单细胞一样,本身不具备任何思考能力,没什么自己的想法,你给它一个刺激,它只是简单的会有一个反应。
& T. i f4 \4 |
xqbxpz20ueg64063119456.jpg
1 X- e2 J. V* c0 N
那这个刺激是什么呢?是电压,硬件感知到的仅仅就是电压。电压有两种,高电压和低电压。你马上就能反应过来,这就是01二进制,高电压代表1低电压代表0,0和1仅仅是人类可以理解的东西,硬件电路可不理解这玩意,它仅仅就是靠电流驱动来工作。让我们来看看这个简单的电路,这个就是与门:3 `. e8 Z; R3 |$ h4 o3 v# p% E
4uskinu1fz364063119556.png
1 F! ?: Y& l$ h( @2 L* T- c7 K6 ~0 b你能说这个电路理解它自己该做什么吗?它有自我意识吗?当然没有。所以说这个问题的答案非常简单:CPU根本就不能理解任何东西,之所以CPU能正常工作,仅仅是因为你(制作CPU的人)让它这么工作。这个问题就好比你问一辆自行车是如何理解自己怎么跑起来的?还不是因为你设计了车轮、车链然后用脚一蹬跑起来的。
% t J+ d! C$ y6 k
0xxgztc2jsm64063119657.png
5 M: ^* Z+ Q5 ]6 e! p2 K/ L i你希望两个开关都打开灯才亮,因此你这样设计电路,这就是与门;你希望任意一个开关打开灯就亮,因此你那样设计电路,这就是或门;你希望关闭开关灯才亮,这就是非门,有了与或非你可以搭建出任意复杂的逻辑电路,比如下面这个能执行加操作的加法器。$ j# C1 C9 A, e9 I- x$ O! L" H
zwrfwofpu2u64063119757.png
2 r0 F# v2 [* Q e+ x" u看看这个电路,你能说它知道自己是在执行加法操作吗,这当然是人类认为这个电路的输出等价于加法操作的结果。尽管这个电路看上去很不错,给定两个输入得到的输出和我们人类认为的加法是一样一样的,但这有点简单。除了加法是不是还应该有其它操作,如果有多种类型的操作那么就必须告诉电路该操作的类型是什么(操作码),操作的数字是什么(操作数)。这样给它一个输入就能按照我们的想法来控制电路了,BOOM!!!宇宙大爆炸!& }( H. o. h6 g
哦不对,CPU诞生了!人类编写的代码必须首先转为01二进制,之后才能驱动CPU工作。当然,怎么把一坨代码高效等价的转为1001011100。。。这项工作可不简单,人类探索了几十年,一干人等还获得了图灵奖,可见这个问题的重要程度以及难度。
6 K6 X0 F; [( S8 l* n- V$ X; q
4elbbui1rso64063119857.jpg
8 X% R: Z4 {# d3 G9 b/ `
你今天能简单点一下build按钮或简单运行一个命令就能把你写的代码转为01串,要知道这简单的背后是靠无数天才榨干天量的脑细胞才实现的。! D1 |# g9 R) j" q
e3ugcsy5al264063119957.png
5 p, t9 F2 u6 X
从这里应该应该能看出来,CPU根本不认识任何语言,理解编程语言的其实是编译器。现在我们能给CPU输入了,那输出呢?剩下的仅仅就是解释了,比如给你一个01串,01001101,你可以认为这是一个数字,也可以认为这是一个字符,也可以是表示RGB颜色,一切都看你怎么解释,这就是软件的工作了。最终的目的只有一个:让人类能看懂。整个流程就是这样的:
$ }$ o9 U2 y- b( j2 O
e1z5nxu3bec64063120057.png
! j) T& c: z# e5 M! |/ l( J* I
计算机真是一个非常神奇的机器,如此简单,却又能完成复杂无比的工作。现在你应该明白了吧,计算机所谓能理解二进制就好比你的台灯能理解开关一样。它们真的对此一无所知。------------ END ------------) k& j5 |; A2 p. r/ J! }
kzaunc4mpzg64063120157.gif
4 K4 G% v& a1 D
●专栏《嵌入式工具》●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程& c" v. P5 S5 N! m0 [, ~' a
关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。# J) h3 v7 ]4 V2 o: k8 n- ^+ X
+ L' j8 i; T1 J! a7 F4 Y; w
onir4qegmzs64063120257.png
I. Y% ]. Q) X/ [5 k) h
点击“阅读原文”查看更多分享。 |