跟着锅子一步步学习32位汇编(12)---PUSH和POP PUSHAD和POPAD

在理解这4个操作符之前,应该先理解STACK的概念。

之前讲到2个内存交换数据可以通过数据寄存器 或 XCHG操作符来实现,这次我们用PUSH和POP来实现下吧

;test_10

INCLUDE irvine32.inc
INCLUDELIB Irvine32.lib
INCLUDELIB KERNEL32.LIB

.data
val1 DWORD 10h
val2 DWORD 20h

.code
main PROC
	push val1
	push val2
	pop val1
	pop val2
		
	exit
main endp
END main

PUSHAD和POPAD是一对.

PUSHAD将通用寄存器的内容压入堆栈。这些寄存器按以下顺序存储到堆栈:EAX、ECX、EDX、EBX、EBP、ESP(原始值)、EBP、ESI 及 EDI(如果当前操作数大小属性为 32);

POPAD则是PUSHAD的逆向操作。

转载于:https://www.cnblogs.com/guogairenjia/archive/2011/11/06/2238160.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值