堆栈指针SP的问题,很奇怪,大家进来看一下,谢谢
org 0000h
ajmp main
org 0050h
main:mov sp,#32h
mov 30h,#50h
mov 31h,#5Fh
mov 32h,#3ch
POP DPH;
POP DPL;
POP SP;
nop
end
运行完以上程序后,我不理解为什么sp=50h,执行POP SP首先把(30H)=50H的内容给SP,然后因为是出栈所以要减一不是吗?为什么不是(SP)=4FH ?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
堆栈操作指令的解释是这样的:
(1)进栈
PUSH direct ; (SP)+1→SP,(direct)→(SP)
(2)推栈
POP direct ;((SP))→direct,(SP)-1→(SP)
一周热门 更多>