跳转到内容

Opcode

维基百科,自由的百科全书

在计算机领域,操作码(opcode,来源于 operation code 的缩写[1][2]),是机器语言指令中用于指定要执行操作的部分。除了操作码本身,大多数指令还会通过操作数(operand)的形式指定它们将要处理的数据。opcode是中央处理器(CPU)及算术逻辑单元(ALU)指令集架构中的操作码,但两者处理方式不同。算术逻辑单元会将opcode汇入到其电路中,,而中央处理器的opcode是其要执行机器语言的一部分。

CPU里的opcode

[编辑]

在CPU的机器语言指令中可以看到opcode,也在抽象计算机中作为字节码规范的一部分使用。 也称为指令机器码(instruction machine code)、指令码(instruction code)、指令字节(instruction syllable)、指令段(instruction parcel)或操作字符串(opstring)。针对特定的处理器(可能是一般通用的中央处理器,或是特定的处理单元),其opcode是由处理器的指令集架构 (ISA)所定义[3] ,可以用opcode表英语opcode table来说明。指令可能包括算术、资料复制、逻辑运算符、流程控制、以及特殊的指令(例如CPUID[3]

机器语言指令除了opcode外,也会标示需处理的资料(称为operand),不过有些指令可能有隐藏的operand,也可能没有operand[3]。有些指令集有一致的opcode和operand标示方式,而有些指令集(例如x86架构)则有较不一致,长度不同的指令[3][4]

相关条目

[编辑]

参考资料

[编辑]
  1. ^ Barron, David William. 2.1. Symbolic instructions. 写于University of Southampton, Southampton, UK. Floretin, J. John (编). Assemblers and Loaders. Computer Monographs 3. New York, USA: Elsevier North-Holland Inc. 1978: 7 [1971, 1969]. ISBN 0-444-19462-2. LCCN 78-19961.  (xii+100 pages)
  2. ^ Chiba, Shigeru. Javassist, a Java-bytecode translator toolkit. 2007 [1999] [2016-05-27]. (原始内容存档于2020-03-02). 
  3. ^ 3.0 3.1 3.2 3.3 Hennessy, John L.; Patterson, David A.; Asanović, Krste; Bakos, Jason D.; Colwell, Robert P.; Bhattacharjee, Abhishek; Conte, Thomas M.; Duato, José; Franklin, Diana; Goldberg, David; Jouppi, Norman P.; Li, Sheng; Muralimanohar, Naveen; Peterson, Gregory D.; Pinkston, Timothy M.; Ranganathan, Parthasarathy; Wood, David A.; Young, Cliff; Zaky, Amr. Computer architecture: A quantitative approach 6. Cambridge, Massachusetts, USA: Morgan Kaufmann Publishers. 2017-11-23. ISBN 978-0-12811905-1. OCLC 983459758. 
  4. ^ Mansfield, Richard. Introduction: Why Machine Language?. Machine Language For Beginners. Compute! Books] 1. Greensboro, North Carolina, USA: COMPUTE! Publications, Inc., American Broadcasting Companies, Inc.; Small System Services, Inc. 1983 [2016-05-28]. ISBN 0-942386-11-6. (原始内容存档于2008-02-13).