0% found this document useful (0 votes)
6 views

Coa notes

These notes are from Computer organisation and structure.

Uploaded by

ankursagar020
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Coa notes

These notes are from Computer organisation and structure.

Uploaded by

ankursagar020
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Stack Organization

Stack is also known as the Last In First Out (LIFO) list. It is the most important feature
in the CPU. It saves data such that the element stored last is retrieved first. A stack is
a memory unit with an address register. This register influence the address for the
stack, which is known as Stack Pointer (SP). The stack pointer continually influences
the address of the element that is located at the top of the stack.
It can insert an element into or delete an element from the stack. The insertion
operation is known as push operation and the deletion operation is known as pop
operation. In a computer stack, these operations are simulated by incrementing or
decrementing the SP register.

Register Stack
The stack can be arranged as a set of memory words or registers. Consider a 64-word
register stack arranged as displayed in the figure. The stack pointer register includes
a binary number, which is the address of the element present at the top of the stack.
The three-element A, B, and C are located in the stack.
The element C is at the top of the stack and the stack pointer holds the address of C
that is 3. The top element is popped from the stack through reading memory word at
address 3 and decrementing the stack pointer by 1. Then, B is at the top of the stack
and the SP holds the address of B that is 2. It can insert a new word, the stack is
pushed by incrementing the stack pointer by 1 and inserting a word in that incremented
location.
The stack pointer includes 6 bits, because 26 = 64, and the SP cannot exceed 63
(111111 in binary). After all, if 63 is incremented by 1, therefore the result is 0(111111
+ 1 = 1000000). SP holds only the six least significant bits. If 000000 is decremented
by 1 thus the result is 111111.
Therefore, when the stack is full, the one-bit register ‘FULL’ is set to 1. If the stack is
null, then the one-bit register ‘EMTY’ is set to 1. The data register DR holds the binary
information which is composed into or readout of the stack.
First, the SP is set to 0, EMTY is set to 1, and FULL is set to 0. Now, as the stack is
not full (FULL = 0), a new element is inserted using the push operation.
The push operation is executed as follows −

SP←SP + 1 It can increment stack pointer

K[SP] ← DR It can write element on top of the stack

If (SP = 0) then (FULL ← 1) Check if stack is full

EMTY ← 0 Mark the stack not empty

The stack pointer is incremented by 1 and the address of the next higher word is saved
in the SP. The word from DR is inserted into the stack using the memory write
operation. The first element is saved at address 1 and the final element is saved at
address 0. If the stack pointer is at 0, then the stack is full and ‘FULL’ is set to 1. This
is the condition when the SP was in location 63 and after incrementing SP, the final
element is saved at address 0. During an element is saved at address 0, there are no
more empty registers in the stack. The stack is full and the ‘EMTY’ is set to 0.
A new element is deleted from the stack if the stack is not empty (if EMTY = 0). The
pop operation includes the following sequence of micro-operations −

DR←K[SP] It can read an element from the top of the stack

SP ← SP – 1 It can decrement the stack pointer

If (SP = 0) then (EMTY ← 1) Check if stack is empty

FULL ← 0 Mark the stack not full

The top element from the stack is read and transfer to DR and thus the stack pointer
is decremented. If the stack pointer reaches 0, then the stack is empty and ‘EMTY’ is
set to 1. This is the condition when the element in location 1 is read out and the SP is
decremented by 1.

You might also like