Opcode

本條目存在以下問題，請協助改善本條目或在討論頁針對議題發表看法。

此條目需要編修，以確保文法、用詞、语气、格式、標點等使用恰当。 (2025年2月24日)
請按照校對指引，幫助编辑這個條目。（幫助、討論）

|

此條目可参照英語維基百科相應條目来扩充。 (2025年2月24日)
若您熟悉来源语言和主题，请协助参考外语维基百科扩充条目。请勿直接提交机械翻译，也不要翻译不可靠、低品质内容。依版权协议，译文需在编辑摘要注明来源，或于讨论页顶部标记`{{Translated page}}`标签。

|

在计算机领域，操作码（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]。

## 相關條目

[编辑]

* gadgets：返回导向编程中，一種ret 結尾的機器指令序列。
* Illegal opcode（英语：Illegal opcode）

## 參考資料

[编辑]

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）.