什么是机器指令
到目前为止,我们依次认识了负责计算的电路、负责记忆的电路和地址。那么,怎样对这些零件说“做这个”呢?该认识计算机听得懂的语言——指令了。
指令就是“做什么”加“在哪里”
给计算机下的命令非常简单。
只要“做什么”和“在哪里、对哪里”两个部分就够了。
比如“加,3号和7号”。
做什么(加)+ 对哪里(3号和7号)。
换成人话,就是“把3号格和7号格加起来”。
又短又清楚。
计算机一条一条接收这样的小命令并执行,每一条就叫作一条指令。
指令也用0和1来写
可是计算机既不懂中文也不懂英文,只懂0和1。
所以指令也要用0和1来写。
前面部分写做什么,后面部分写在哪里,各自放在固定的位置、用固定的格式。
前4位是指令的种类,后面是目标地址。
在我们眼里,这只是一串0和1,可在计算机看来,它是一句完整的话:“把3号和7号加起来。”
看固定的位置,意思就能准确读出来。
认识的“单词”只有几个
有个令人惊讶的事实:计算机认识的指令比想象中少。
取值、存值、相加、跳到别处,就只有这么几条基本指令。
靠这本小小的“单词本”,它能完成所有的事。
把这些简单的指令连上无数次,就能做出游戏和视频。
单词少也没关系。
就像用简短的词也能写出长长的故事,把这几条指令组合上几百万次,几乎没有做不到的事。
计算机怎样读指令
那么计算机怎样读这些0和1呢?
它在固定的位置把它们切开来看。
看到前面部分,知道“哦,是要相加”;看到后面部分,知道“是3号和7号”。
像这样切开来读,叫作译码。
按下面的“译码”按钮,每一部分的意思就会显示出来。
在固定的位置切开,读出意思。
固定的位置,固定的意思。
所以计算机只看0和1,就能准确知道要对哪里做什么。
正因为有约定,才做得到。
把指令连起来,就是程序
一条指令很小,可一条条连起来,就能做成事。
“取5号的值,取6号的值,两个相加后存进7号”,这三行就成了一个加法程序。
按下运行,就会一行一行往下执行。
三行的小程序。
刚才看到的,就是计算机工作的最底层。
我们用的所有程序,归根结底都是由几百万条这样的指令组成的。
下一课我们来看看,除了加法,减法和比较是在哪里完成的。