汇编基础学习12

文章转自 http://www.mcany.cn/article/287.htm

博主 没落的残阳

 

今天我们来学习下XCHG(Exchange Instruction)指令。它是交换指令。
  
    交换指令XCHG是两个寄存器,寄存器和内存变量之间内容的交换指令,两个操作数的数据类型要相同。其指令格式如下:

   XCHG OPRD1,OPRD2
   其中的OPRD1为目的操作数,OPRD2为源操作数 .

   注意:XCHG不能交换段寄存器且它是不影响标志位的。

   该指令的功能和MOV指令不同,后者是一个操作数的内容被修改,而前者是两个操作数都会发生改变。寄存器不能是段寄存器,两个操作数也不能同时为内存变量。

XCHG指令,我们在写壳的时候用的比较多点。那么上面我们已经说了 XCHG指令它的格式是和两个操作数或者是内存单元来进行数据交换。那么我们就来实例的讲解下。。


  例如此时eax = 00403020h    ebx = 00102033h
  
   XCHG eax, ebx  
  
此时因为XCHG是两个操作数都发生改变,所以此时eax = 00102033h     ebx = 00403020h

  其实非常好理解的 。。 XCHG还可以使寄存器和内存到单元的数据交换。。 举例

  此时eax = 00403020h ,   00403011h中的数据为 30h 00h 30h 00h  那么执行

  XCHG dword ptr [00403011h], eax

  执行指令后00403011h的内存单元数据为 20h 30h 40h 00h  , eax = 00300030h

  就是这么简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值