U were asking about the significance of stack, There is the main memory in our computer if we want to take the support of stack in order to implement recursive calls and nested subroutines then we have only one option in the sense we will have to implement stack in the main memory itself and that part of main memory will act as a stack means it will act same like as stack works like pushing, popping and everything..Along with that stack grows and shrink automatically depending on the need of stack by programs...Here in this question, the stack grows upward...
The stack pointer is used to point the top element of the stack, here the value of SP = (016E)16
Before the fetch of the CALL instruction, value of PC = (5FA0)16
First, we have to load the current value of PC into memory stack, it will take 2 Bytes
And then we have to push PSW register, stack pointer again incremented by 2, So stack pointer finally incremented by 4
So now the value of SP = (016E)16 + 4 = (0172)16 after execute CALL instruction..