实际上能接触到“计算机指令”的人,只是少数电脑工程师。现在一般的电脑程序员都已经无需使用计算机指令了,因为他们编程序已经使用高级的计算机语言了。下面我尽量用通俗的语言来试着解释。
计算机由CPU、内存、硬盘、显示器和键盘等部件组成。计算机软件平时在不工作时则是存放在硬盘里的,计算机开机之后,需要用到的软件就被调入内存来执行。无论在硬盘还是在内存里,这些存储的内容都是二进制数,而这些二进制数里面,只有两类内容:计算机指令和数据。
计算机很重要的一个特点就是,从形式上看,这两类内容都是二进制数,内存单元里随便拿出一个数来,你根本分不清它究竟是指令还是数据,这很有趣。
其实,任何一种CPU(CPU有很多种哦),它都有一个指令集,这个指令集,就规定了哪些二进制数是进行什么操作的,例如某个二进制数代表加法,另一个二进制数就代表乘法,……等等。而CPU在工作的时候,它按照程序从内存将一个数取到指令寄存器里,那么这时放在该寄存器里的这个数,按指令集一查,就知道CPU该做什么操作了。例如,取来这个数恰好是加法指令,那么它就做加法了。
下图是8086CPU的指令集表,从该表中看出,该CPU有116条指令。下面的116条的英文字母,只是用汇编语言写程序的时候为了便于记忆的指令名称,实际上每条指令都是一个二进制数,不同的指令,这个数就不同,这些数就是计算机指令了。举例说,AAA这条指令对应的二进制数是 00110111,AAD这条指令对应的二进制数是 11010101,等等。所以,计算机指令,形式上就是 '00110111'、'11010101'这样的二进制数,至于哪个指令是哪个数,查该CPU的指令表就能查到。