title: Does the stack pointer increment/decrement in words or bytes in a byte addressable system?
body: <p>Given a byte addressable system.Say the word size(= register size) is 2 bytes.The stack grows upwards and currently the stack pointer is at 0x016E.The CALL instruction is of two words,the opcode word and the other is the starting address of the subroutine.The CALL instruction works as follows :</p>
  
  <p>i)load the PC,PSW onto the stack;</p>
  
  <p>ii)load the starting address of the subroutine in PC.</p>
  
  <p>PC contents before CALL instruction is 0x5FA0(filler info I'm assuming).What is the value of the stack pointer after the execution of the CALL instruction ?</p>
  
  <p>The answer is 0x172.<br>
  So this is what I can't wrap my head around. PC + PSW + CALL = 8 bytes on stack.Or is the CALL instruction not stored on stack ? A clear sequence of events would be much appreciated.Thanks in advance!</p>