汇编语言,把一个寄存器入栈然后马上跟着出栈有什么作用吗?例如push ax pop ax

如题所述

就是浪费点时间(延时),没别的什么作用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-29
j

...用堆栈指令将寄存器AX与SI的内容交换。 PUSH AX PUSH SI ... POP...
push SI 然后把SI的值入栈 pop AX 是把后压入的SI的值弹到AX pop SI 是把先压入的AX的值弹到SI 是数据的后进先出,不是寄存器的后进先出。这样就可以达到交换寄存器数据的目的。同样,如果不是要达到交换数据的目的,而仅仅是用栈保存寄存器的原值,那么就应该这么写:push AX push S...

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

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

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

汇编语言字符串复制指令?PUSH和POP指令必须成对出现吗?如果不必要那在...
但是用PUSH和POP可以更方便地保存一大堆需要保护的数据,两者通常都是成对出现的,如果你不POP,那你PUSH干嘛?同时你必须记住后进先出的原则,如果顺序搞错,那么数值就全乱了。如果你非要不成对出现,也可以啊。比如,你先PUSH ACC 再PUSH 60H,然后进行一大堆的操作,突然再来一个PUSH ACC ,这样...

汇编pop什么意思
在会编中常见的用法是pop ax ,就是将栈顶的那个数取出并存入到ax寄存器中。此外与之相对应的就是push了,它的意思是入栈,也就是再放一本书到容器的意思。另外,如果你要想学好汇编的话,建议看下王爽的汇编语言,我觉得这本书写的相当不错,里面的比喻,相当的到位,很容易让人看懂。

汇编语言中Push ax指令执行后,ax的原内容在ax寄存器中还保存么?
AX原内容入栈了,可以理解为放到一个专用的存储器里了,出栈后再去出来即可。

汇编语言指令
一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX...

汇编入栈出栈之后寄存器中的数据怎么没了??
不是没有了,是正好当前栈顶元素就是0而已。比如ax = 2000,而这个时候栈顶的元素就是0,那么pop ax就是ax = 栈顶元素,所以执行后ax的结果就是0.试下这几句:mov ax, 1000h mov bx, 2000h push ax push bx pop ax pop bx

汇编指令。PUSH(入栈指令) 这是神马意思? 什么是入栈 简单的解释...
入栈(PUSH)就是将一个数据存入SP指向的当前堆栈地址,然后SP指向堆栈内的下一个存储空间;出栈(POP)就是让SP返回前一个存储空间,然后读出这个地址内存储的数据。堆栈的优势就是暂存数据时不用管到底存在哪了,只要按照后进先出的原则就可以保证恢复数据;缺点就是不能通过堆栈操作跳着访问栈内数据。

相似回答