汇编里的PUSH压栈使用他是为了进行什么步骤而使用的呢?

如题所述

第1个回答  2019-05-04
你不要想的太复杂,其实它很简单的,你只要知道它有什么用就行了,CPU中寄存器的数量是有限的,但是每个程序都不能不用寄存器,所以当一个程序调用另一个程序时就要保存当前寄存器的内容,叫压栈,等被调用的程序运行完了再出栈.

汇编里的PUSH压栈使用他是为了进行什么步骤而使用的呢?
不丢失数据进行压入(PUSH)栈保护,出栈(POP)恢复原数据。例如共用累加器A,进栈前压入保护,累加器可在进行运算,出栈恢复原累加器中的数值。结果不会影响原数值。

汇编里的PUSH压栈使用他是为了进行什么步骤而使用的呢?
因为CPU里的寄存器只有4个,eax,ebx,ecx,edx,所以你在编写程序的时候,可能这4个寄存器里都存储有数据了,但是你还需要再用寄存器来存储数据,这时,4个寄存器就明显的不够用了,那么怎么办呢,当然,我们可以将原寄存器中的内容压栈,然后这时寄存器中的数据就存到了内存中的栈段内,寄存器就空出来了...

汇编里的PUSH压栈使用他是为了进行什么步骤而使用的呢?
你不要想的太复杂,其实它很简单的,你只要知道它有什么用就行了,CPU中寄存器的数量是有限的,但是每个程序都不能不用寄存器,所以当一个程序调用另一个程序时就要保存当前寄存器的内容,叫压栈,等被调用的程序运行完了再出栈.

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

汇编里的PUSH功能是压栈但为什么要压栈的呢?
调用函数和中断的时候,临时变量和返回地址就暂存在栈中。函数调用完了,临时变量和返回地址就从栈删除了。所以栈一般来说是临时变量,调用函数会自动回收内存。这就是PUSH 和 POP 的功能了。相当于一个暂时保存数据的地方。 而堆的话一般用来动态分配内存,分配的内存一般不会自动释放。

汇编语言中的PUSH的用法
PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置。此处的((SP))<--OPRD,也可以理解为:[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD 示例: PUSH DX PUSH BP PUSH CS PUSH DATA1 PUSH ALFA...

汇编push和pop指令
push寄存器:将指定寄存器的内容压入栈顶。pop寄存器:从栈顶弹出数据到指定寄存器中。下面通过一段汇编代码演示栈操作的实现过程,代码使用MASM编辑器进行编写(假设使用了王爽的环境配置)。假设选择10000H至10000FH的内存空间作为栈区,初始状态下栈为空。设置寄存器ax和bx的值,然后使用push指令将ax和bx...

汇编语言中的PUSH的用法
PUSH的操作过程是:(SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置。此处的((SP))<--OPRD,也可以理解为:[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD 示例:PUSH DX PUSH BP PUSH CS PUSH DATA1 PUSH ALFA[BX...

汇编里的"PUSH"和"POP"起了什么功能,,谁能用通俗点的话告诉我吗???
堆栈是一端固定,另一端变化的特殊存储空间,你可以把它想像成装固体的桶,桶底(栈底)固定,桶里面所装固体的最高处定义为桶顶(栈顶)。如果什么都没有装时,桶顶和桶底相等,当装一层沙子后,桶顶升高(即栈顶地址-2,相当于入栈PUSH),再装一层水泥,桶顶再次升高,(即栈顶地址又-2...

push和pop分别是什么意思?
具体来说,"push" 操作会将一个数据项压入栈顶,通常会将栈顶指针向下移动(递增)。这个数据项可以是任何类型的数据,包括整数、浮点数、字符、指针等等。例如,在汇编语言中,可以使用 "push" 指令将一个寄存器的值压入栈顶。相反,"pop" 操作会从栈顶弹出一个数据项,并将其移除栈顶。通常会将...

相似回答
大家正在搜