堆栈中PUSH与POP

设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=113AH

压入5个字数据,弹出两个字数据。就相当于压入3个字数据(先压入的那3个字数据)

经过这样后,堆栈指针(SP)是怎么从1140H变成113AH,也就是怎么算的?
原来加和减,都是十六进制数所,难怪
那为什么是十六进制数呢

每执行一次字数据的入栈,sp的内容减2。
相反,每执行一次字数据的出栈,sp的内容加2。
所以压入3个字后,sp=sp-6=1140h-0006h=113ah
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-29
你都移动4个bit
位了,怎么可能是2呢?第二次shr
eax,4.
eax=2.
可是你与是1001(5),当然是0了。
第2个回答  2008-04-25
它是压的和弹的都是字呀,不是字节,所以呢,每次要加2,或减2,所以结果应该是sp-6,就是113ah了呀

push是什么指令
push是一个汇编术语,实现压入操作的指令是PUSH指令,实现弹出操作的指令是POP指令。PUSH入栈指令及POP出栈指令:堆栈操作是以“后进先出”的方式进行数据操作。栈是限定仅在表尾进行插入和删除操作的线性表。“栈”者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数...

栈的操作原则是什么?
堆栈使用两种基本操作:推入(压栈,push)和弹出(弹栈,pop):1、推入:将资料放入堆栈顶端,堆栈顶端移到新放入的资料。2、弹出:将堆栈顶端资料移除,堆栈顶端移到移除后的下一笔资料。特点 堆栈的基本特点:1、先入后出,后入先出。2、除头尾节点之外,每个元素有一个前驱,一个后继。软件堆栈...

push汇编
在汇编指令中,PUSH和POP是两种重要的堆栈操作。PUSH用于将数据压入堆栈,其格式为PUSH OPRD,其中OPRD是一个16位的操作数,可以是寄存器或存储器的值。执行PUSH时,首先执行(SP) -= 2,然后将OPRD的值存储在新的栈顶位置,这一过程可以用[(SS)*16+(SP)] = OPRD或[SS:SP] = OPRD来理解。例...

汇编里的"PUSH"和"POP"起了什么功能,,谁能用通俗点的话告诉我吗...
如果什么都没有装时,桶顶和桶底相等,当装一层沙子后,桶顶升高(即栈顶变高,相当于入栈PUSH),再装一层水泥,桶顶再次升高,(即栈顶又变高),当你往出倒东西的时候,你先倒出最上层的水泥,桶顶下降(即栈顶变低,相当出栈POP),然后你才能倒出沙子。所以堆栈是先进来的先出去。

PUSH指令有什么用
PUSH,SRC,Word入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器。入栈时高位字节先入栈,低位字节后入栈。POP,DST,Word出栈操作数除不允许用立即数和CS段寄存器外,可以为通用寄存器,段寄存器和存储器,执行POPSS指令后,堆栈区在存储区的位置要改变,执行POPSP 指令后,...

堆栈数据的进出原则
1. 堆栈是一种数据结构,它遵循“后进先出”(Last In, First Out, LIFO)的原则。2. 在堆栈中,数据元素的添加称为“压栈”(push),而数据的移除则称为“出栈”(pop)。3. 每当数据元素被压入堆栈时,它都会被放置在栈顶,成为最后一个进入的数据。4. 随后,在执行弹出操作时,最后一个...

堆栈溢出原理定义
在计算机科学的领域中,堆栈是一种常见的抽象数据结构。堆栈的核心特征是遵循后进先出(LIFO)的原则,意味着最后放入堆栈的元素在取出时会优先于之前添加的。这个特性使得堆栈在许多操作中具有独特的顺序规则。堆栈支持两种基本操作,分别是PUSH和POP。PUSH操作允许我们在堆栈的顶部添加一个新元素,将其放置在...

8051单片机 PUSH POP指令的作用
一、PUSH、POP指令的作用:PUSH和POP 都是堆栈操作指令。实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令。二、PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置.此处的((SP))<--OPRD,也可以理解...

堆栈中PUSH与POP
每执行一次字数据的入栈,sp的内容减2。相反,每执行一次字数据的出栈,sp的内容加2。所以压入3个字后,sp=sp-6=1140h-0006h=113ah

谁能跟我讲一下进栈为什么要SP减2 出栈为什么是SP+2?
堆栈的两条操作指令PUSH(进栈)、POP(出栈),其指令格式为:PUSH OPD POP OPD 其中OPD是16位的操作数,可以是寄存器或存储器操作数 而内存空间(包括栈空间)是以字节(8位)为单位进行存储的,所以无论进栈或出栈,都要使用栈空间的两个字节。即在做进栈时,其栈指针(SP)要SP-2,出栈时,...

相似回答