汇编语言指令集学习CMPXCHG比较并交换操作指令详解

指令助记符 CMPXCHG

含义: 比较并交换指令
用法:目的操作数和累加操作数(AH、AL、EAX)进行比较,如果相等(ZF=1),则将源操作数复制到目的操作数中,否则将目的操作数复制到累加器中。
指令格式:

CMPXCHG reg reg
CMPXCHG mem reg

例子详解:

CMPXCHG CX,DX
1.指令执行前:(AX)=00FFH,(CX)=00FFH,(DX)=00EFH;
  指令执行后:(AX)=00FFH,(CX)=00EFH,(DX)=00EFH,ZF=1;
2.指令执行前:(AX)=00EEH,(CX)=00FFH,(DX)=00EFH;
  指令执行后:(AX)=00FFH,(CX)=00EFH,(DX)=00EFH,ZF=0;

流程图详解:

以上就是汇编语言指令集学习CMPXCHG比较并交换操作指令详解的详细内容,更多关于汇编语言CMPXCHG比较并交换操作指令的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解汇编语言各种指令的解释与用法

    [数据传输指令] 一.通用数据传送指令 1.传送指令MOV(move) 指令的汇编格式:MOV DST,SRC 指令的基本功能:(DST)<-(SRC) 将原操作数(字节或字)传送到目的地址.指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令.指令的执行对标志位的影响:不影响标志位.指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器:目的操作数DST不能是CS,也不能用立即数方式. 2.进栈指令 PUSH(push onto the sta

  • 汇编语言指令集之串处理指令讲解

    串处理指令 串处理指令分类情况如下: 指令类型 MOVS move string 传传送 CMPS compare string 串比较 SCAS scan string 串扫描 LODS load from string 从串取 STOS store in to string 存入串 INS input from port to string 串输入 OUTS output string to port 串输出 REP repeat 重复 REPE/REPZ repeat while equa

  • 汇编语言指令集学习条件转移指令详解

    目录 1.根据单个条件标志的设置情况转移 2. 比较两个无符号数,并根据比较的结果转移 3. 比较两个带符号数,并根据比较的结果转移 4.测试CX或ECX的值为0则转移指令 条件转移指令较多,容易混淆,在此记录一下便于日后使用 1.根据单个条件标志的设置情况转移 指令 英文 含义 格式 测试条件 JZ/JE jump if zero/equal 结果为零/相等则转移 JZ/JE OPR ZF=1 JNZ/JNE jump if not zero/equal 结果不为零/不相等则转移 JNZ/JN

  • 汇编语言Debug命令详解教程

    目录 1. Debug-R命令 2. Debug-D命令 3. Debug-E命令 4. Debug-U命令 5. Debug-T命令 6. Debug-A命令 参考书籍<汇编语言>--王爽 Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询. 命令 用途Debug-R查看.改变CPU寄存器的内容Debug-D查看内存中的内容Debug-E改写内存中的内容Debug-U将内存中的机器指令翻译成汇编指令Debug-T执行一条机器指令Debug-A以汇编指令的格式在内存中写

  • 汇编语言指令大全 X86和X87汇编指令大全(带注释)

    目录 一.数据传输指令 1. 通用数据传送指令. 2. 输入输出端口传送指令. 3. 目的地址传送指令. 4. 标志传送指令. 二.算术运算指令 三.逻辑运算指令 四.串指令 五.程序转移指令 六.伪指令 七.处理机控制指令:标志处理指令 浮点运算指令集 1.控制指令 2.数据传送指令 3.比较指令 4.运算指令 其它 一.机械码,又称机器码. 二.需要熟练掌握的全部汇编知识(只有这么多) 三.常见修改(机器码) 四.两种不同情况的不同修改方法 一.数据传输指令 它们在存贮器和寄存器.寄存器和输

  • 汇编语言指令集学习CMPXCHG比较并交换操作指令详解

    指令助记符 CMPXCHG 含义: 比较并交换指令 用法:目的操作数和累加操作数(AH.AL.EAX)进行比较,如果相等(ZF=1),则将源操作数复制到目的操作数中,否则将目的操作数复制到累加器中. 指令格式: CMPXCHG reg reg CMPXCHG mem reg 例子详解: CMPXCHG CX,DX 1.指令执行前:(AX)=00FFH,(CX)=00FFH,(DX)=00EFH; 指令执行后:(AX)=00FFH,(CX)=00EFH,(DX)=00EFH,ZF=1; 2.指令执

  • MySQL学习之数据库操作DML详解小白篇

    目录 1.插入语句 1.1插入一行 1.2插入多行 1.3插入查询语句 2.修改语句 2.1修改单表记录 2.2修改多表记录 3.删除语句 3.1方式1使用delete删除 3.2方式2使用truncate删除 3.3使用truncate和delete删除的区别 1.插入语句 1.1插入一行 有两种: 1.以小括号的形式 这里注意:如果表名后边不加小括号对应内容,那么默认就是添加所有列 2.以set形式 insert into + 表名 set 表中的某一个字段=要插入的值,表中的某一个字段=要

  • 汇编语言80x86系统通用数据传送指令详解

    目录 通用数据传送指令 附上UML Markdown代码: 通用数据传送指令 MOV move 传送 MOVSX move with sign-extend 带符号扩展传送 MOVZX move with zero-extend 带零扩展传送 PUSH push onto the stack 进栈 POP pop from the stack 出栈 PUSHA/PUSHAD push all registers 所有寄存器进栈 POPA/POPAD pop all registers 所有寄存器

  • Angular 2.x学习教程之结构指令详解

    结构指令是什么? 结构指令通过添加和删除 DOM 元素来更改 DOM 布局.Angular 中两个常见的结构指令是 *ngIf 和 *ngFor . 了解 * 号语法 * 号是语法糖,用于避免使用复杂的语法.我们以 *ngIf 指令为例: (图片来源:https://netbasal.com/) Angular 把 host (宿主元素) 包装在 template 标签里面 Angular 将 ngIf 转换为属性绑定 - [ngIf] 创建结构指令 首先,让我们了解如何创建一个结构指令. 接下

  • TensorFlow人工智能学习张量及高阶操作示例详解

    目录 一.张量裁剪 1.tf.maximum/minimum/clip_by_value() 2.tf.clip_by_norm() 二.张量排序 1.tf.sort/argsort() 2.tf.math.topk() 三.TensorFlow高阶操作 1.tf.where() 2.tf.scatter_nd() 3.tf.meshgrid() 一.张量裁剪 1.tf.maximum/minimum/clip_by_value() 该方法按数值裁剪,传入tensor和阈值,maximum是把数

  • iOS逆向工程之Hopper中的ARM指令详解

    虽然前段时间ARM被日本软银收购了,但是科技是无国界的,所以呢ARM相关知识该学的学.现在看ARM指令集还是倍感亲切的,毕竟大学里开了ARM这门课,并且做了不少的实验,当时自我感觉ARM这门课学的还是可以的.虽然当时感觉学这门课以后似乎不怎么用的上,可曾想这不就用上了吗,不过之前学的都差不多忘了,还得捡起来呢.ARM指令集是精简指令集,从名字我们就能看出指令的个数比那些负责指令集要少一些.当然本篇所涉及的ARM指令集是冰山一角,不过也算是基础,可以阅读Hopper中的汇编了,实践出真知,看多了自

  • C++11学习之多线程的支持详解

    目录 C++11中的多线程的支持 1.C++11中的原子类型 1.1 原子类型的接口 1.2简单自旋锁的实现 2.提高并行程度 2.1 memory_order的参数 2.2 release-acquire内存顺序 2.3 release-consume内存顺序 2.4 小结 3.线程局部存储 4.快速退出 C++11中的多线程的支持 千禧年以后,主流的芯片厂商都开始生产多核处理器,所以并行编程越来越重要了.在C++98中根本没有自己的一套多线程编程库,它采用的是C99中的POSIX标准的pth

  • Python速成篇之像selenium一样操作电脑详解

    目录 常用用法一 常用用法二 常用用法三 常用用法四 常用用法五 常用用法六 末段小结 为了照顾新手我会写的很详细,若是只是来寻找函数用法的小伙伴可以直接滑到末段小结哦 首先我们需要使用到的第三方库是 pyautogui 可以用快捷键win+R输入cmd在调出的命令行中输入如下指令 pip install pyautogui 等待一小会下载安装完成后即可直接调用啦 调用方式为: import pyautogui 常用用法一 模拟鼠标点击 pyautogui.click() 但是电脑它并不知道我们

  • Angularjs cookie 操作实例详解

    摘要 现在很多app采用内嵌h5的方式进行开发,有些数据会存在webveiw的cookie中,那么如果使用angularjs开发单页应用,就需要用到angularjs的cookie操作.这里提供一个简单的学习demo.方便快速上手. 一个例子 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ng-app="myapp"> <head> <meta http

随机推荐