51单片机汇编程序详解:POP是干什么的?

DELAY: PUSH 02H
LP1: PUSH 02H
LP2: PUSH 02H
LP3: DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DELAY
RET

POP是弹栈指令,我们写程序过程中,有时候会用到,寄存器冲突现象,比如,我们刚在A中存储了一个数据,但是我们又要做加法,我们不希望A中的书据丢失,怎么办,与时,就可以用到push指令,在Sp指向的空间开辟栈空间,把A中的内容压进去,等我们需要压入的数据的时候,就用Pop指令弹出,这样,就实现了,即做完了工作,又保护了现场。
欢迎多多交流,纯手打。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-19
POP和PUSH是成对使用的,PUSH是压栈,把数据内容放到堆栈里,POP是弹出栈,把堆栈里的内容取出来。
如果用枪的子弹夹比作堆栈,PUSH,相当于把子弹装进弹夹,POP相当于把子弹从弹夹里打出去追问

延时为什么要用到压栈和出栈呢
ORG 0000H
DELAY:MOV R1,#25H
DL1:MOV R2,#25H
DL2:DJNZ R2,DL2
DJNZ R1,DL1
RET

这个也可以啊

相似回答