XCHG指令(交换数据)是用于交换两个数据的内容的一个指令,它其实就是mov指令的简化版,所以他的操作数格式于mov 如出一辙,他的操作数有3种格式:
1.XCHG reg,reg (寄存器,寄存器)
2.XCHG reg,mem(寄存器,内存操作数 即用户定义的变量)
3.XCHG mem,reg
除了XCHG指令不能使用立即数做操作数外,XCHG指令与mov的指令要求完全相同。在数组排序应用中,XCHG指令提供了一种方法来交换两个数组元素。下面是几个使用XCHG指令的例子
xhcg ax,bx ;交换16位寄存器的值
xchg ah,al ;交换8位寄存器的内容
xchg var1,bx;交换16位内存操作数和BX寄存器的内容
xchg eax,ebx ;交换32位寄存器内容
如果要交换两个内存操作数,则用寄存器作为临时容器,把mov指令与XCHG指令一起使用:
mov ax,val1
xchg ax,val2
mov val1,ax