操作码标识了指令集中要执行的计算机基本操作。它在编写机器代码时使用。它告诉计算机要做什么。每条机器语言指令通常都有操作码和操作数。操作码就像句子中的动词,操作数就像句子中的主语。操作码通常是内存或注册表地址。
在机器代码中,操作码被用于许多功能,包括浮动寄存器的加法,寄存器的两相加,将寄存器值移到内存或硬盘上,停止程序等。现代计算机中常用的操作码有数百种之多。
由于计算机结构的性质,操作码采用二进制数的形式。另外,操作码也可以用十六进制数字表示,(例如,10100101=A5),以便于设计或模拟机器码程序时阅读和编码。然后将这些数值转化为二进制等值来保存。现代的操作码至少有两个十六进制字符的长度,占用1个字节的存储空间。
操作码的能力和"值"会根据它们所属的计算机而变化,因为它们取决于硬件。例如,用十六进制表示的STORE的操作码在一台计算机上可能是FA,而在另一台计算机上可能是02。有些操作码在某些计算机上是不可用的。一般来说,构建指令集有两种方法。缩减指令集计算机(RISC)提供较少的可能的操作码,而有利于提高简单处理的速度。复杂指令集计算机(CISC)提供了更多的操作码,有利于提高复杂过程的速度。
操作码很少被程序员直接使用。每当它们被直接编入内存时,它们只能保证在它们设计的计算机上工作。当程序员用汇编语言编写程序时,翻译程序会将程序语句,一比一转换成机器语言命令。程序员只需记住每个操作码的记号,而不是其二进制值。另外,也可以使用高级程序语言,比如说4代,它会被转换成3代,以此类推,直到达到1代。从这里开始,每当读取程序文件时,个人计算机就会将程序转换为机器码。这样,一个程序就可以在更多的计算机上工作。