ORG 0 ;此時(SP)內容值為07H
MOV SP,#9F ;手動將(SP)改設9FH
MOV A,#7 ;A=07H
PUSH A ;(SP)+1 = 0A0H 0A0H=07H
PUSH A ;(SP)+1 = 0A1H 0A1H=07H
POP A ;取值A=07H (SP)-1 = 0A0H
CALL KOO ;設此句CODE為0BH,下句為0EH,則CALL後(SP)+1=0A1H (0A1H)=0EH
(SP)+1=0A2H (0A2H)=00H
KOO: ;假設
MOV A,1
RET ;DPH=(0A1H) (SP)-1 =0A0H DPL=(0A0H) (SP)-1 = 09FH
CALL執行時,會PUSH目前PC值的2BYTES ADDR進(SP)
RET執行時,先POP DPH再POP DPL
0A1H放DPL,0A2H放DPH ,所以完整的RETERN ADDR #000EH
No comments:
Post a Comment