PUSH和POP必须成对出现吗?

x1h2w3 2003-09-17 12:43:17
看见书上介绍堆栈时说PUSH和POP必须成对出现,可是在后面的学习中发现并不是这样,那到底PUSH和POP必须成对出现呢。
...全文
264 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
x1h2w3 2003-09-19
  • 打赏
  • 举报
回复
谢谢各位

^_^
lhg3122 2003-09-19
  • 打赏
  • 举报
回复
堆栈也只不过是一个连续的后进先出的存储空间,主要用来函数调用便于返回时保数据分别还是用在各自的函数体内。不一要成队出现,看具体情况,但为了保持堆栈平衡,一般成对出现。
jackyspy 2003-09-17
  • 打赏
  • 举报
回复
不需要!!!
真正理解汇编再说
x1h2w3 2003-09-17
  • 打赏
  • 举报
回复
保证堆栈平衡?好像还不是很了解。
W32API 2003-09-17
  • 打赏
  • 举报
回复
不是。你只要保证堆栈平衡,无需管他什么方法。。
比如 ADD ESP,0X????
Clevor 2003-09-17
  • 打赏
  • 举报
回复
太迂腐了。。。
先把地址PUSH进去,然后用RET可以实现跳转。
作为子程序入口/出口处的PUSH/POP一般是成对的。
x1h2w3 2003-09-17
  • 打赏
  • 举报
回复
说错了:是不是栈顶?
x1h2w3 2003-09-17
  • 打赏
  • 举报
回复
是不是说,只要SP指的数是栈内某一个被压入的数就行了?
那么这个时候这个数应该就是栈底了吧。
terryc 2003-09-17
  • 打赏
  • 举报
回复
不是要求sp指向栈顶,只要求你sp指向的数字正确就行,ret什么实际上差不多就是pop ip + jmp ip了,所以只要进栈压栈正确就行了
qiume 2003-09-17
  • 打赏
  • 举报
回复
呵呵,
RET
就已经执行Pop了吧
Ruluo 2003-09-17
  • 打赏
  • 举报
回复
你了解了堆栈的原理就清楚了
x1h2w3 2003-09-17
  • 打赏
  • 举报
回复
就是说保证SP总是指向栈顶就行了是不是
spbabyba 2003-09-17
  • 打赏
  • 举报
回复
只要堆栈指针对就行,好多情况下POP不与PUSH一样多.

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧