linux汇编语言cmp,汇编语言中cmp指令用法笔记与总结
这篇文章主要介绍了汇编语言中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指令用法笔记与总结相关推荐
- 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)...
汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号 ...
- 汇编语言中xor指令_汇编各类指令用法及含义分析 - 全文
什么是汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指 ...
- c语言loop指令,汇编语言中loop指令的使用
现在在学习汇编,感觉挺有意思的!,我就把学习的东西写下来吧,当作以后可以学习的笔记- loop指令的格式是:loop标号,cpu执行loop指令的时候,要进行两步操作 1:(cx)=(cx)-1 2: ...
- 关于汇编语言中cmp指令的小笔记
cmp是比较指令,cmp的功能是相当于减法指令,只是不保存结果.cmp指令执行后,将对标志寄存器产生影响.其他相关指令通过识别这些被影响的标志寄存器来得知比较结果. cmp指令格式: cmp 操作对 ...
- 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作...
XOR 指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存放在目标操作数中: XOR destination, source XOR 指令操作数组合和大小与 AND 指令及 O ...
- 汇编语言中xor指令_这个汇编代码有什么作用? (TEST,XOR,JNZ)
TEST和XOR是用于对操作数执行逻辑运算的逻辑指令. 测试指令(比较操作数) TEST destiny, source 它执行操作数的逐位连接,但与AND不同,该指令不会将结果放在目标操作数中,它只 ...
- 汇编语言中RET指令的功能
通常作为一个子程序的最后一条指令,用以返回到调用子程序的断点处,即从堆栈弹出断电送往ip和cs寄存器.
- 汇编语言中xor指令_XOR寄存器,寄存器(汇编程序)
xor%ax,%ax,如先前评论中所述,对应于ax = ax xor ax.这基本上设置ax = 0.此外,它还影响/修改一些EFLAGS,例如OF,CF,SF,PF或ZF.在这种情况下,将设置PF和 ...
- Java语言中include指令用法详解
incude指令的形式:<%@ include file="Header.jsp" %> 通过这种方式我们可以给页面添加统一的标题栏和footer栏,代码如下: 首先H ...
最新文章
- 最短路径 - dijkstra
- 阿里一面:如何保障消息100%投递成功、消息幂等性?
- Java魂斗罗1234合集_《魂斗罗》正统续作1234部介绍,别再搞错喽!
- tableau可视化数据分析60讲(九)-tableau数值计算字符串计算(重点知识)
- 从 volatile 说到 i++ 的线程安全问题
- vi常用命令与设置(不断修改中)
- Session为null 问题
- 815. Bus Routes
- 玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点...
- 蓝桥杯 - 历届试题 - 日期问题
- python语法简图
- Coins(HDU2844)
- 机器学习(聚类六)——层次聚类
- Jacobi法求特征值特征向量
- securitytube视频列表
- 最新IP数据库 号段归属地 省市区镇行政区划
- 为XCode 6 添加新建类模板
- C语⾔的标识符以及规范
- 全球人工智能产业链产业图谱
- 第十章:项目沟通管理 - (10.0 项目沟通管理是什么)
热门文章
- 一文读懂自动驾驶汽车:软硬结合 造就未来出行体验(下篇)
- 一个文字版Java双人对抗游戏源码
- 网络请求urllib库的基本使用 ----------python的爬虫学习
- C语言综合练习6:制作贪吃蛇
- 亚马逊MWS开发--商品变体
- Hadoop之免密登录
- DataX性能优化点
- 【零基础搭建网站】Wordpress零基础60元搭建网站
- 蓝桥杯 结果填空 正六面体染色 Burnside引理
- smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3nir1u6xZq42WDw--.22935S2 1504492533,please