Andy Glew's comp-arch.net wiki, http://semipublic.comp-arch.net
If you are reading this elsewhere, e.g. at site waboba.info, it is an unauthorized copy, and probably a malware site.
comp-arch.net wiki on hold from October 17, 2011
Number of Operands in an Instruction
The terminology for the number of input operands in an instruction is inconsistent.
For example, instructions of the form A+=B are often called 2-operand instructions. Which they are, from the point of view of instruction encoding. However, from the point of view of a simple micro-dataflow OOO machine, such an instruction really 3 operands in its micro-operation form: A.new := A.old + B. Whereas a move instruction like A:=B has 2-operands from both perspectives, albeit 1-input, 1-output.
|CLEAR reg||1 operand||1 output (1 implicit constant input)|
|INC reg||1 operand||1 input/output|
|MOV reg1 := reg2||2 operand||1 input, 1 output|
|ADD in place reg1 += reg2||2 operand||1 input/output, 1 input
(viz. 2 inputs, one of which also happens to be output)
|ADD reg1 = reg2 + reg3||3 operand||2 input, 1 output|
|FMA3 reg1 += reg2*reg3||3 operand||2-input, 1-input/output
(viz. 3-inputs, one of which happens to be output)
|FMA4 reg1 = reg2*reg3 + reg4||4 operand||1 output, 3 input|
Terms beyond 4-operands do not seem to be in common use, except possibly with notes of incredulity, e.g. "Do you realize that Itanic had 7-operand instructions?"