Content deleted Content added
m Robot-assisted fixing links to disambiguation page (you can help!): Assembler (disambiguation) |
m Robot-assisted disambiguation (you can help!): Java programming language |
||
Line 4:
The operands upon which opcodes operate may, depending on CPU architecture, consist of [[processor register|registers]], values in [[memory]], values stored on the [[call stack|stack]], [[I/O]] ports, the [[Computer bus|bus]], etc. The operations an opcode may specify can include arithmetic, data copying, logical operations, and program control.
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)|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 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 [[Assembly language#Assembler|assembler]] transforms assembly language into machine code.
|