Question: what is the difference between stack pointer and program counter?
Answer: Program counter is a register which holds the address of next instruction when the current instruction is under execution while stack pointer is a pointer which points to the top element of the stack.