汇编语言中的进栈push,出栈pop,有什么作用呢?

汇编语言中的进栈push,出栈pop,有什么作用呢?我看到别人说是为了保护调用的子程序,不影响到寄存器,进栈的作用,是不是就是为寄存器的值在栈区里创建一个副本,让调用的子... 汇编语言中的进栈push,出栈pop,有什么作用呢?我看到别人说是为了保护调用的子程序,不影响到寄存器,进栈的作用,是不是就是为寄存器的值在栈区里创建一个副本,让调用的子程序修改的是栈区里的副本,而并不是修改或者影响寄存区本身,就像VB编程的参数传递的,按值传递和按地址传递?并且,如果我想让调用的子程序修改寄存器的值,是不是就不用压栈了?对于push,pop我看不明白,还望懂的高手用举例子的话帮我解释一下 展开
 我来答
郯璇俟玟玉
2020-06-16 · TA获得超过3377个赞
知道大有可为答主
回答量:3061
采纳率:26%
帮助的人:221万
展开全部
并不是这样,和你理解的恰恰相反

将寄存器的值进行压栈是为了保护在寄存器中的值。比方说
程序
在计算所得结果分别放在寄存器A和B中,这时程序调用
子程序
,子程序在编写过程中用到了A和B两个寄存器,如果直接调用子程序那么A和B中原有的计算值会被覆盖同时影响了程序和子程序的运算结果,这时需要
一个地方
用来保存原程序的结果就用到了栈
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式