汇编语言中,出栈后 出栈的那个数值在栈中会被清零吗?

我觉得会被清零的,但是书上的出栈过程却没有清零,怎么回事?我是新手,越详细越好。

第1个回答  2015-12-01
不会清零。不信的话到原地址去看看原数变了没。
第2个回答  2015-11-07
不会被清零,但是这个数据正常情况下不会被访问到,除非特意去访问这个数据
第3个回答  2015-10-23
不会清零。
POP DST  指令执行过程:
    (DST)<-((SP)+1, (SP))
    (SP)<-(SP)+2
可见,栈中数据并无变化,只是SP指针+2。

第4个回答  2013-04-26
出栈操作其实变的只是指针SP.....原数值仍旧保留
第5个回答  2013-04-26
不会的, ...

汇编语言中,出栈后 出栈的那个数值在栈中会被清零吗?
不会被清零。汇编语言中,出栈是通过POP指令来实现的,首先看一下Intel手册中对于pop指令的描述:大致意思如下:Pop指令从栈顶加载值到目标操作数指定的位置,然后增加栈顶指针。目标操作数可以是一个通用寄存器,内存位置或者段寄存器。可以看到,手册中并没有提到出栈后Pop要清空原有位置的值。因为这是不...

汇编语言中,关于入栈出栈的理解。数据出栈后会被清掉吗,它还在内存单元...
数据出栈后在没有新的数据进栈前它在内存单元中的值没变,但你几乎无法常规读取(除非你知道SS及SP)。

压栈、出栈、栈的清理和堆栈都是什么呢?
可以理解成机枪的弹夹,弹夹就是一个栈,子弹一颗一颗压进去,就是压栈,有个顺序特点就是先进后出,后进先出,出栈就是子弹装号了一颗一颗打出来,栈的清理就是把弹夹清空,清掉弹夹里的子弹。堆栈就是把子弹放到弹夹里,堆在那里了,实际意思都差不多。C语言里栈就可以用数组来做,把数据像子弹一...

汇编pop什么意思
你好,汇编中的pop是出栈的意思,打个比方,栈是一个上方开口的容器,里面放了几本书,由于容器的限制,你一次只能取一本书,当然只能是最上面的那本,而pop的意思就是将最上面的那本取出的意思,在会编中常见的用法是pop ax ,就是将栈顶的那个数取出并存入到ax寄存器中。此外与之相对应的就是...

关于堆栈的问题:在c语言中,由于把a变量压入堆栈,top弹出堆栈的时候,弹...
但实际中要要保存a的值,肯定是在声明一个变量保存,int b = a; 不就可以了。不会有人真的去构造一个栈来保存值。真正需要用栈来保存值是在汇编语言中(不知道你学过没有),寄存器只有有限的10几个,只能靠栈来保存一些值,不像C中变量可以声明无数个,可能说过头了,希望你可以明白。

汇编中movsp,#60H是什么意思
1. 在讨论汇编语言中的指令时,我们首先需要了解特殊功能寄存器SP的作用。在8086微机系统中,SP作为堆栈指针,用来指示堆栈的偏移地址。2. 当进行入栈操作时,SP的值会减2;而出栈操作后,SP的值会增加2。3. 在汇编指令`mov sp,#60H`中,#60H表示的是一个立即数,它指定了堆栈的大小。在这里,...

汇编语言中压入堆栈是什么意思
就是把数据暂时存放到栈中的意思.例:PUSH AX PUSH BX 等等,就是把AX,BX寄存器中的数据存入到栈中.栈是一个暂时存储数据的内存空间,它具有"后进先出"的特性.补充:栈的作用是很大的.比如,可以用来传递参数,用来暂时存放寄存器中的数据,让寄存器再去做别的事,在WIN32ASM中,还是开辟局部变量的主要空间...

在汇编中,要计数或是寻址,怎么知道要用哪个寄存器
当然,EDI也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。 EBP:这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造‘堆栈帧'来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS是它的默认段寄存器或选择器。 注意,这三个...

汇编语言基本指令的一道题,求大神解答,急!!!
这不就是入栈,出栈吗?栈是自顶向下,如果你图中上方向表示的是高地址的话,那么(bx)先入栈,代码就是:push bxpush ds;---之后是出栈吧,pop dspop bx

汇编语言中03B进栈后为什么变成0FF3B啊?
进栈出栈每次SP加或减2,说明占用两个字节,而您的03B只占一个字节,进栈时自动添加另外一个字节0FF,所以您看到的就是0FF3B。明白?

相似回答