Opcodes (Instruction) - Operation Codes - Instruction Syllable/Parcel - Opstring

Opcode - Types

Opcode/Instruction Type

Example Instruction

Data Handling & Memory Operations

  • set a register to a fixed constant value
  • copy data from a memory location to a register, or vice versa (a machine instruction is often called move; however, the term is misleading). Used to store the contents of a register, the result of a computation, or to retrieve stored data to perform a computation on it later. Often called load and store operations
  • read and write data from hardware devices

Arithmetic & Logic Operations

  • addsubtractmultiply, or divide the values of two registers, placing the result in a register, possibly setting one or more condition codes in a status register
    • incrementdecrement in some ISAs, saving operand fetch in trivial cases
  • perform bitwise operations, e.g. taking the conjunction and disjunction of corresponding bits in a pair of registers, taking the negation of each bit in a register
  • compare two values in registers (for example, to see if one is less, or if they are equal)
  • floating-point instructions for arithmetic on floating-point numbers

Control Flow Operations

  • branch to another location in the program and execute instructions there
  • conditionally branch to another location if a certain condition holds
  • indirectly branch to another location
  • call another block of code, while saving the location of the next instruction as a point to return to

Coprocessor Instructions

  • load/store data to and from a coprocessor or exchange with CPU registers
  • perform coprocessor operations