交换指令XCHG是两个寄存器,寄存器和内存变量之间内容的交换指令,两个操作数的数据类型要相同,可以是一个字节,也可以是一个字,也可以是双字 。其指令格式如下:
XCHG Reg/Mem, Mem/Reg,Reg/Reg
 
【例】
XCHG CH,AL   寄存器之间相互交换,字节操作
XCHG BX,SI     寄存器之间相互交换,字操作。
XCHG [SI],CX   存储器与寄存器之间交换,字操作。
 
该指令的功能和MOV指令不同,后者是一个操作数的内容被修改,而前者是两个操作数都会发生改变。寄存器不能是段寄存器,两个操作数也不能同时为内存变量。 XCHG指令不影响标志位。
 
【功能】: 交换两个操作数的数据,(dst)↔(src)
【语法】: XCHG
【格式】: XCHG r1,r2 XCHG m,r XCHG r,m
 
XCHG指令不允许的情况有以下四种:
1. 不能同时都为内存操作数
2. 任何一个操作数都不能为段寄存器
3. 任何一个操作数不能为立即数
4. 两个操作数的长度不能不相等

汇编_指令_XCHG的更多相关文章

  1. 汇编_指令_IRET

    IRET(interrupt return)中断返回,中断服务程序的最后一条指令.   汇编指令IRET [指令格式]IRET   [指令功能]IRET(interrupt return)中断返回,中 ...

  2. 汇编_指令_REP MOVESB 和 CLD

    先说说MOVSB(MOVe String Byte):即字符串传送指令,这条指令按字节传送数据.通过SI和DI这两个寄存器控制字符串的源地址和目标地址,比如DS:SI这段地址的N个字节复制到ES:DI ...

  3. 汇编_指令_JMP

    JMP指令 JMP是汇编语言中的无条件跳转指令.无条件跳转指令可转到内存中任何程序段.转移地址可在指令中给出,也可以在寄存器中给出,或在储存器中指出. 中文名:无条件跳转指令 外文名:JMP 和调用指 ...

  4. 汇编_指令_INC

    加1指令 INC指令功能:目标操作数+1 INC指令只有1个操作数,它将指定的操作数的内容加1,再将结果送回到该操作数.INC指令将影响SF,AF,ZF,PF,OF标志位,但是不影响CF标志位. IN ...

  5. 汇编_指令_LEA和MOV的区别

    就是目标地址传送指令: 将一个近地址指针写入到指定的寄存器.格式: LEA reg16,mem16 其中reg16必须是一个16位通用寄存器,mem16必须是一个存储器,执行这个指令后,就将mem16 ...

  6. 汇编_指令_CS与DS的区别

    cs是值cpu执行的当前指令的段地址,ds是数据开始的段地址. CS是告诉CPU,去哪个位置找内容当成指令去执行:DS是告诉CPU,去哪个位置找内容当成数据被使用. datastring =ds co ...

  7. 汇编_指令_FLAGS

    标志名                                       标志 1           标志 0 OF   (溢出标志)                     OV     ...

  8. 汇编_指令_SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR

    ;SHL(Shift Left):      逻辑左移 ;SHR(Shift Right):      逻辑右移 ;SAL(Shift Arithmetic Left): 算术左移 ;SAR(Shif ...

  9. 汇编_指令_SUB

    SUB是减法运算. 比如mov ax,2mov bx,1sub ax,bx 其中sub ax,bx就是ax中的值减bx中的值,等于1,然后把结果,也就是1,放入ax中.

随机推荐

  1. 云主机搭建Kubernetes 1.10集群

    一.基础环境 云主机 下载软件包 将所有软件下载至/data目录 # 链接:https://pan.baidu.com/s/13DlR1akNBCjib5VFaIjGTQ 密码:1l69 # 链接:h ...

  2. Jwt访问api提示401错误 Authorization has been denied for this request

    教程  http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-ap ...

  3. CCNA学习指南 -开放最短路径优先OSPF(多区域部分)

    在之前的介绍中,可以看到单区域OSPF对于古老的RIP的优点: 路由选择更新流量减小 使用与大型网络和链路速度不一样的网络 OSPF能够在LSDB中呈现网络拓扑结构,这使得它汇聚的速度远快于RIP. ...

  4. SpringBoot使用Redis数据库

    (1)pom.xml文件引入jar包,如下: <dependency> <groupId>org.springframework.boot</groupId> &l ...

  5. Redis哨兵(sentinel)

    介绍 Redis的sentinel主要是用来管理多个Redis服务器,sentinel负责(1)监控主服务器和从服务器的运行状态(2)主服务器运行故障时自动切换其中一台从服务器为主服务器 Sentin ...

  6. 安装 bochs-x

    sudo apt-get install bochs-x

  7. [osgearth]oe学习的一些经验(别人的)

    参考:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=5484&extra=page%3D1&_dsign=70b15 ...

  8. spark udf 初识初用

    直接上代码,详见注释 import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{SparkContext, Spark ...

  9. How to have matlab tic toc in C++?

    Reprinted form: https://stackoverflow.com/questions/13485266/how-to-have-matlab-tic-toc-in-c/1348558 ...

  10. Jenkins无法读取覆盖率报告的解决方法

    报错信息如下: log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 coverage-report: [mkdir] Cre ...