In computer science, an instruction is a single operation of a processor defined by the processor instruction set.
The size or length of an instruction varies widely, from as little as 4-bits in some microcontrollers to many as multiples of a bytes in some very long instruction word (VLIW) systems. Most modern processors used in personal computers, mainframes, and supercomputers have instruction sizes between 16 and 64 bits. In some architectures, especially Reduced instruction set computers, instructions are of fixed length, typically corresponding with that architecture's word size.
On traditional architectures, an instruction includes an opcode specifying the operation to be performed, such as "add contents of memory to register", and zero or more operand specifiers, which may specify registers, memory locations, or literal data. The operand specifiers may have addressing modes determining their meaning or may be in fixed fields.
In VLIW architectures, which include many microcode architectures, multiple simultaneous operations and operands are specified in a single instruction.
Instructions are rarely specified using their machine code form; they may be specified by programmers using an assembly language or, more commonly, may be generated by compilers.
There is another more general definition for an "instruction" not only related to the processor instruction set, which is: An "instruction" may be any representation of an element of an executable computer program.