Computer Organization | Instruction Formats (Zero, One, Two and Three Address Instruction)

04 Oct, 2021
A computer performs a task based on the instruction provided. Instruction in computers comprises groups called fields. These fields contain different information as for computers everything is in 0 and 1 so each field has different significance based on which a CPU decides what to perform. The most common fields are:
Operation field specifies the operation to be performed like addition.
Address field which contains the location of the operand, i.e., register or memory location.
Mode field which specifies how operand is to be founded.
Instruction is of variable length depending upon the number of addresses it contains. Generally, CPU organization is of three types based on the number of address fields:
Single Accumulator organizationGeneral register organizationStack organization
Single Accumulator organization
General register organization
Stack organization
In the first organization, the operation is done involving a special register called the accumulator. In second on multiple registers are used for the computation purpose. In the third organization the work on stack basis operation due to which it does not contain any address field. Only a single organization doesn’t need to be applied, a blend of various organizations is mostly what we see generally. 
Based on the number of address, instructions are classified as: 
Note that we will use X = (A+B)*(C+D) expression to showcase the procedure. 
 
Zero Address Instructions –  
Zero Address Instructions –  
A stack-based computer does not use the address field in the instruction. To evaluate an expression first it is converted to reverse Polish Notation i.e. Postfix Notation. 
Expression: X = (A+B)*(C+D)
Postfixed : X = AB+CD+*
TOP means top of stack
M[X] is any memory location
 
2 .One Address Instructions – This uses an implied ACCUMULATOR register for data manipulation. One operand is in the accumulator and the other is in the register or memory location. Implied means that the CPU already knows that one operand is in the accumulator so there is no need to specify it. 
 
Expression: X = (A+B)*(C+D)
AC is accumulator
M[] is any memory location
M[T] is temporary location
3.Two Address Instructions – This is common in commercial computers. Here two addresses can be specified in the instruction. Unlike earlier in one address instruction, the result was stored in the accumulator, here the result can be stored at different locations rather than just accumulators, but require more number of bit to represent address.  
Here destination address can also contain operand. 
Expression: X = (A+B)*(C+D)
R1, R2 are registers
M[] is any memory location
4.Three Address Instructions – This has three address field to specify a register or a memory location. Program created are much short in size but number of bits per instruction increase. These instructions make creation of program much easier but it does not mean that program will run much faster because now instruction only contain more information but each micro operation (changing content of register, loading address in address bus etc.) will be performed in one cycle only. 
 
Expression: X = (A+B)*(C+D)
R1, R2 are registers
M[] is any memory location
Abhilash Gogoi 1
nidhi_biet
om_mishra
priyapal741
surindertarika1234
anikaseth98
Computer Organization & Architecture
GATE CS
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.