Intro to COA

Hazards in Pipelining

Stack-organized computers use zero address instructions. Zero address instructions have no OPERAND with OPCODE.

Note: in expression a+b, + is operand and a,b are the OPCODE

Stack-organized computers follow the Last in First out (LIFO) rule, where operations are always performed at the top of the stack value.

• The PUSH command helps to push/add data into the stack.
• The POP command is used to pop/remove the data from the stack.
• RAM or Registers are required to implement stack organization.

• There is no need for an operand, that’s why these instructions are very simple.
• Execution is speedy because it minimizes the overhead of operand fetching and decoding.
• They also contain very little memory space.

• Limited Expressiveness for complex expressions
• Although zero-address instructions save space, but it is very difficult for memory management, especially in systems where memory allocation and de-allocation are important.
• Highly dependent on the Stack, overflow in the stack may leads toward problems.
• Limited compatibility with all computing architectures.

In this section, we will see various examples of zero address instructions in detail.

Example 01:

Write a program for zero address instructions to evaluate the following arithmetic instruction

X= {(a*b) + (c*d)}

Postfix Notation: ab*cd*+

Let see the further explanation of Example 01 using the following expression

(3*4) + (5*6)

Postfix Notation: 34*56*+

Example 02:

Write a program for zero address instructions to evaluate the following arithmetic instruction

X= {(a-b)+c*(d*e-f)} / {(g+h*k)}

Postfix Notation: ab-cde*f-*+ghk*+/

Example 03:

Write a program for zero address instructions to evaluate the following arithmetic instruction

{(a-b)} / {(c)+(d*e)}

Postfix Notation: ab-cde *+/

Remember:

• Always use the minimum number of instructions (so that the program length can be minimized).
• Always use the minimum number of registers (Register can be reused).