汇编中进栈出栈(push,pop)有什么作用,有点糊涂,请高手点拨,最好详细一点,谢谢!

2024-12-30 15:29:44
推荐回答(2个)
回答1:

堆栈有用来暂时保存数据、与子程序通讯两个功能。

功能一、暂时保存数据
比如要调用某子程序,不希望子程序破坏寄存器BX,那么可以这样
PUSH BX
CALL procXXX
POP BX

功能二、用来和传递参数给子程序

回答2:

并不是这样,和你理解的恰恰相反

将寄存器的值进行压栈是为了保护在寄存器中的值。比方说程序在计算所得结果分别放在寄存器a和b中,这时程序调用子程序,子程序在编写过程中用到了a和b两个寄存器,如果直接调用子程序那么a和b中原有的计算值会被覆盖同时影响了程序和子程序的运算结果,这时需要一个地方用来保存原程序的结果就用到了栈