这篇文章主要介绍了汇编语言中cmp指令用法,结合实例形式总结分析了汇编语言cmp指令基本功能、使用方法及操作注意事项,需要的朋友可以参考下

本文实例讲述了汇编语言中cmp指令用法。分享给大家供大家参考,具体如下:

cmp是比较指令,cmp的功能是相当于减法指令,只是不保存结果.cmp指令执行后,将对标志寄存器产生影响.其他相关指令通过识别这些被影响的标志寄存器来得知比较结果.

cmp指令格式: cmp  操作对象1,操作对象2

功能: 计算操作对象1 - 操作对象2 但不保存结果,仅仅根据计算结果对标志寄存器进行设置.比如cmp ax,ax  是做ax - ax 的运算,结果为0,但并不在ax中保存,仅影响flag的相关各位.

指令执行后: zf = 1,pf = 1,sf = 0,cf = 0,of = 0;

下面的指令:

mov ax,8

mov bx,3

mov ax,bx

执行后: (ax)= 8,zf = 0,pf = 1,sf = 0, cf = 0, of = 0

如果 ax = bx 则 ax - bx = 0 ,所以 : zf = 1

如果 ax != bx 则ax - bx != 0,所以 : zf = 0

如果ax < bx 则ax - bx 将产生错位,所以 : cf = 1

如果 ax >= bx 则 ax - bx 将不必借位,所以 : cf = 0

如果ax > bx 则 ax - bx 既不必借位,结果又不为0, 所以 : cf = 0 并且 zf = 0

如果 ax <= bx 则ax - bx 既可能借位,结果可能为0,所以 :  cf = 1 或 zf =1

检测比较结果的条件转移指令

je     等于则转移         zf=1

jne   不等于则转移     zf=0

jb      低于则转移        cf=1

jnb    不低于则转移    cf=0

ja       高于则转移        cf=0且zf=0

jna     不高于则转移    cf=1或zf=1

e : equal

ne : not equal

b: below

nb : not below

a : above

na : not above

编程: 统计data段中数值小于8的字节的个数,用ax保存统计结果

mov ax,data

mov ds,ax

mov ax,0 ;初始化累加器

mov bx,0 ;ds:bx指向第一个字节

mov cx,8

s : cmp byte ptr [bx] , 8 ;和8进行比较

jnb next ;如果不小于8转到next,继续循环

inc ax ;如果小于8就将计数值加1

next:inc bx

loop s

程序执行后: ax = 2

还有疑问的可以去查看一下指令手册,讲解的比较细致

希望本文所述对大家汇编语言程序设计有所帮助。

linux汇编语言cmp,汇编语言中cmp指令用法笔记与总结相关推荐

  1. 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)...

    汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号 ...

  2. 汇编语言中xor指令_汇编各类指令用法及含义分析 - 全文

    什么是汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指 ...

  3. c语言loop指令,汇编语言中loop指令的使用

    现在在学习汇编,感觉挺有意思的!,我就把学习的东西写下来吧,当作以后可以学习的笔记- loop指令的格式是:loop标号,cpu执行loop指令的时候,要进行两步操作 1:(cx)=(cx)-1 2: ...

  4. 关于汇编语言中cmp指令的小笔记

    cmp是比较指令,cmp的功能是相当于减法指令,只是不保存结果.cmp指令执行后,将对标志寄存器产生影响.其他相关指令通过识别这些被影响的标志寄存器来得知比较结果. cmp指令格式: cmp  操作对 ...

  5. 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作...

    XOR 指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存放在目标操作数中: XOR destination, source XOR 指令操作数组合和大小与 AND 指令及 O ...

  6. 汇编语言中xor指令_这个汇编代码有什么作用? (TEST,XOR,JNZ)

    TEST和XOR是用于对操作数执行逻辑运算的逻辑指令. 测试指令(比较操作数) TEST destiny, source 它执行操作数的逐位连接,但与AND不同,该指令不会将结果放在目标操作数中,它只 ...

  7. 汇编语言中RET指令的功能

    通常作为一个子程序的最后一条指令,用以返回到调用子程序的断点处,即从堆栈弹出断电送往ip和cs寄存器.

  8. 汇编语言中xor指令_XOR寄存器,寄存器(汇编程序)

    xor%ax,%ax,如先前评论中所述,对应于ax = ax xor ax.这基本上设置ax = 0.此外,它还影响/修改一些EFLAGS,例如OF,CF,SF,PF或ZF.在这种情况下,将设置PF和 ...

  9. Java语言中include指令用法详解

    incude指令的形式:<%@ include file="Header.jsp" %> 通过这种方式我们可以给页面添加统一的标题栏和footer栏,代码如下: 首先H ...

最新文章

  1. 最短路径 - dijkstra
  2. 阿里一面:如何保障消息100%投递成功、消息幂等性?
  3. Java魂斗罗1234合集_《魂斗罗》正统续作1234部介绍,别再搞错喽!
  4. tableau可视化数据分析60讲(九)-tableau数值计算字符串计算(重点知识)
  5. 从 volatile 说到 i++ 的线程安全问题
  6. vi常用命令与设置(不断修改中)
  7. Session为null 问题
  8. 815. Bus Routes
  9. 玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点...
  10. 蓝桥杯 - 历届试题 - 日期问题
  11. python语法简图
  12. Coins(HDU2844)
  13. 机器学习(聚类六)——层次聚类
  14. Jacobi法求特征值特征向量
  15. securitytube视频列表
  16. 最新IP数据库 号段归属地 省市区镇行政区划
  17. 为XCode 6 添加新建类模板
  18. C语⾔的标识符以及规范
  19. 全球人工智能产业链产业图谱
  20. 第十章:项目沟通管理 - (10.0 项目沟通管理是什么)

热门文章

  1. 一文读懂自动驾驶汽车:软硬结合 造就未来出行体验(下篇)
  2. 一个文字版Java双人对抗游戏源码
  3. 网络请求urllib库的基本使用 ----------python的爬虫学习
  4. C语言综合练习6:制作贪吃蛇
  5. 亚马逊MWS开发--商品变体
  6. Hadoop之免密登录
  7. DataX性能优化点
  8. 【零基础搭建网站】Wordpress零基础60元搭建网站
  9. 蓝桥杯 结果填空 正六面体染色 Burnside引理
  10. smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3nir1u6xZq42WDw--.22935S2 1504492533,please