Each instruction consists of two major parts : (1) an operation code , which specifies the operation to be performed, and (2) the designation of the operands that participate.
Operands can be grouped in three classes : operands located in registers, immediate operands, and operands in main storage. Operands may be either explicitly or implicitly designated.
Register operands are located in one of the general registers R0 - R15. The register containing the operand is specified by identifying the register in a four-bit field, called the R field, in the instruction. For some instructions an operand is located in an implicitly designated register, the register being implied by the operation code.
Immediate operands are contained within the instruction, and the eight-bit field containing the immediate operand is called the I field.
Operands in main storage may either have an implied length, be specified by a bit mask, or, in other cases, be specified by a four-bit or eight-bit length specification, called the L field, in the instruction. The addresses of operands in main storage are specified by means of a format that uses the contents of a general register as part of the address. This makes it possible to:
The address used to refer to main storage either is contained in a register designated by the R field in the instruction or is calculated from a base address, index, and displacement, designated by the B, X, and D fields. respectively, in the instruction.
For purposes of describing the execution of instructions, operands are designated as first and second operands and. in some cases, third operands.
In general, two operands participate in an instruction execution, and the result replaces the first operand. An exception is instructions with ``store'' in the name, where the result replaces the second operand. Except for storing the final result, the contents of all registers and storage locations participating in the addressing or execution part of an operation remain unchanged.