MOV A,@R0 //把R0地址單元的內容給A,其中A是08H SP= SP+2?我忘了這個,請在書上查壹下。
PUSH A //將A放入堆棧並保存。
PUSH 40H //40H單元內容被放入堆棧並保存。
交換A //並與A中的內容交換,A就變成了28H。
MOV 40H,A //現在把A中的內容放入40H單元。
MOV R0,#50H //給R0壹個50H的地址。
MOV @R0,A //把A中的數據給50H單元格,單元格值就變成了28H。
POP A //彈出堆棧(原內容為40H),A中(註明的順序)為28H。
POP 40H //最初按下A時,POP 40H中的值為08H。
結果:(22H)= 08H,(40H)= 08H,(50H)= 28H,
A=28H,SP=我忘了這條指令占用了多少指令周期。請自己檢查壹下。占幾個就加幾個。最後執行POP pop 40H後,就是SP的值。