存储在内存中的指令,实际上是一串串的“01”代码,因为计算机只能识别“0”和“1”两种状态。而且,不是任何的“01”代码,都能够被计算机所识别,计算机仅提供有限的编码规则作为指令集,进行有限的操作,例如“加法”、“减法”等,人们只有按照这套规则编写机器指令,计算机才能识别指令并执行。
图 2. 一种指令集示例
通俗来说,指令集相当于沟通计算机软硬件的桥梁,是计算机这种“冷冰冰的机器”所能够理解的“语言”。
指令集的作用就是规定了机器语言的“格式”。
值得一提的是,指令集一般是对程序员透明的,意思是程序员在编写程序、执行程序时,感受不到指令集的存在。这导致程序员会有一种错觉:自己编写了满意的程序,然后计算机就完美运行了自己的程序,一切都是那么完美。
事实上,程序员编写的程序,先要被翻译成指令集中的指令,然后才能在对应指令集的计算机上执行。只不过“翻译到指令集”的过程有“神秘力量”帮程序员做了。至于指令集长什么样子,程序员不需要了解,这便是“指令集对程序员透明”。