Opcode: Difference between revisions

Content deleted Content added
QTCaptain (talk | contribs)
mNo edit summary
SmackBot (talk | contribs)
m Date the maintenance tags using AWB
Line 1:
{{unreferenced||date=December 2005}}
In [[computer science]], an '''opcode''' is the portion of a [[machine language]] [[instruction (computer science)|instruction]] that specifies the operation to be performed. The term is an abbreviation of '''Op'''eration '''Code'''. Their specification and format will be laid out in the [[instruction set architecture]] (ISA) of the [[computer hardware]] component in question—normally a [[central processing unit|CPU]], but possibly a more specialised unit. A complete machine language instruction contains an opcode and, optionally, the specification of one or more [[operand]]s—what data the operation should act upon. Some operations have ''implicit'' operands, or indeed none. Some ISAs have instructions with defined fields for opcodes and operands, while others (e.g. the [[Intel x86]] architecture) have a more complicated and ad-hoc structure.
 
Line 6:
Opcodes can also be found in [[byte code]]s interpreted by a byte code interpreter (or [[virtual machine]], in one sense of that term). In these, an instruction set architecture is created to be interpreted by software, rather than a hardware device. Often, byte code interpreters work with higher-level data types and operations than a hardware instruction set, but are constructed along similar lines. Examples include the [[Java programming language]]'s [[Java Virtual Machine]] (JVM), the byte code used in [[GNU Emacs]] for compiled [[LISP]] code, and many others.
 
Machine language is tedious and difficult for humans to program in directly, so if the abstraction given by a higher-level [[programming language]] is not desired, an [[assembly language]] is used. Here, [[mnemonic#Assembly_mnemonicsAssembly mnemonics|mnemonic]] instructions are used that correspond to the opcode and operand specifications of the machine language instructions generated. This gives a greater level of readability and comprehensibility than working with machine language operations directly, while still giving accurate control of the machine language generated. A program called an [[assembler]] transforms assembly language into machine code.
 
== See also ==