常用汇编指令对标志位的影响
加法指令 ADD (addition)
指令对标志位的影响:CF=1 最高有效位向高位有进位CF=0 最高有效位向高位无进位OF=1 两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反。OF=0 两个不同符号数相加,或同符号数相加,结果符号与其相同。带进位加法指令 ADC (add with carry)
指令对标志位的影响:CF=1 最高有效位向高位有进位CF=0 最低有效位相高位无进位OF=1 两个同符号数相加,结果符号与其相反,OF=0 两个同符号数相加,或同符号相加,结果符号与其相同加1指令 INC (increament)
指令对标志位的影响:对CF无影响OF=1 两个同符号数相加,结果符号与其相反,OF=0 两个同符号数相加,或同符号相加,结果符号与其相同。减法指令 SUB (subtract)
指令对标志位的影响:CF=1 二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)CF=0 二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。带借位减法指令 SBB (subtract with borrow)
指令对标志位的影响:CF=1 二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)CF=0 二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。减1指令 DEC (decrement)
指令对标志位的影响:对CF无影响OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。比较指令 CMP (compare)
指令对标志位的影响:CF=1 二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)CF=0 二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。求补指令 NEG (negate)
指令对标志位的影响:CF=1 不为0的操作数求补时CF=0 为0的操作数求补时OF=1 操作数为-128(字节运算)或操作数为-32768(字运算)OF=0 当求补运算的操作数不为-128(字节)或-32768(字)时无符号乘法指令 MUL (unsigned multiple) 有符号乘法指令 IMUL(signed muliple)
指令对标志位的影响:乘法指令只影响标志位CF和OF,其他条件码位无定义。MUL指令的条件码设置为:CF OF=0 0 乘积的高一半为0(字节操作的(AH)或字操作的(DX))CF OF=1 1 乘积的高一半不为0IMUL指令的条件码设置为:CF OF=0 0 乘积的高一半为低一半的符号扩展.CF OF=1 1 其他情况无符号数除法 DIV (unsigned divide) 带符号数除法 IDIV (singed divide)
指令对标志位的影响:不影响条件码。逻辑与 AND (logic and)
指令对标志位的影响:指令执行后 CF 和 OF 置零,AF无定义。PF=1 结果操作数中1的个数为偶数时置1PF=0 结果操作数中1的个数为奇数时置0逻辑或 or (logic or)
指令对标志位的影响:令执行后 CF 和 OF 置零,AF无定义。PF=1 结果操作数中1的个数为偶数时置1PF=0 结果操作数中1的个数为奇数时置0逻辑非 NOT (logic not)
指令对标志位的影响:对标志位无影响异或 XOR (exclusice or)
指令对标志位的影响:令执行后 CF 和 OF 置零,AF无定义。PF=1 结果操作数中1的个数为偶数时置1PF=0 结果操作数中1的个数为奇数时置0测试指令 TEST
指令对标志位的影响:令执行后 CF 和 OF 置零,AF无定义。PF=1 结果操作数中1的个数为偶数时置1PF=0 结果操作数中1的个数为奇数时置0逻辑左移 SHL (shift logical left)
指令对标志位的影响:CF=移入的数值OF=1 当cnt=1时,移动后最高位的值发生变化。OF=0 当cnt=1时,移动时最高位的值未发生变化。逻辑右移 SHR (shift logical right)
指令对标志位的影响:CF=移入的数值OF=1 当cnt=1时,移动后最高位的值发生变化。OF=0 当cnt=1时,移动时最高位的值未发生变化。算术左移 SAL (shift arithmetic left)
指令对标志位的影响:CF=移入的数值OF=1 当cnt=1时,移动后最高位的值发生变化。OF=0 当cnt=1时,移动时最高位的值未发生变化。算术右移 SAR (shift arithmetic right)
指令对标志位的影响:CF=移入的数值OF=1 当cnt=1时,移动后最高位的值发生变化。OF=0 当cnt=1时,移动时最高位的值未发生变化。循环左移 ROL (rotate left)
指令对标志位的影响:CF=移入的数值OF=1 当cnt=1时,移动后最高位的值发生变化。OF=0 当cnt=1时,移动时最高位的值未发生变化。循环右移 ROR (rotate right)
指令对标志位的影响:CF=移入的数值OF=1 当cnt=1时,移动后最高位的值发生变化。OF=0 当cnt=1时,移动时最高位的值未发生变化。带进位的循环左移 RCL (rotate left through carry)
指令对标志位的影响:CF=移入的数值。OF=1 当cnt=1时,移动后最高位的值未发生变化。OF=0 当cnt=1时,移动后最高位的值发生变化。SF、ZF、PF标志位不受影响。带进位的循环右移 RCR (rotate right through carry)
指令对标志位的影响:CF=移入的数值。OF=1 当cnt=1时,操作数最高位的值未发生变化。OF=0 当cnt=1时,操作数最高位的值发生变化。SF、ZF、PF标志位不受影响。串传送 MOVSB / MOVSW (move string byte/word)
指令对条件码的影响:不影响条件码。存串 STOSB / STOSW (stroe from string byte/word)
指令对条件码的影响:不影响条件码。取串LODSB / LODSW (load from string byte/word)
指令对条件码的影响:不影响条件码。串比较 CMPSB / CMPSW (compare string byte/word)
指令对条件码的影响:CF=1 二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)CF=0 二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。串扫描 SCASB / SCASW (scan string byte / word)
指令对条件码的影响:CF=1 二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况)CF=0 二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=0 同符号数相减时,或不同符号数相减,其结果符号与减数不同。条件转移指令
指令的汇编格式及功能 根据条件码的值转移:
49、JZ(JE) OPR ZF=1
50、JNZ(JNE) OPR ZF=0
51、JS OPR SF=1
52、JNS OPR SF=0
53、JO OPR OF=1
54、JNO OPR OF=0
55、JP OPR PF=1
56、JNP OPR PF=0
57、JC OPR CF=1
58、JNC OPR CF=0比较两个无符号数,根据比较的结果转移
59、JB(JNAE,JC) OPR CF=1 被减数小于减数则转移
60、JNB(JAE,JNC) OPR CF=0 被减数大于或等于减数则转移
61、JBE(JNA) OPR CF或ZF=1 被减数小于或等于减数则转移
62、JNBE(JA) OPR CF或ZF=0 被减数大于减数则转移比较两个带符号数,根据比较结果转移
63、JL/JNGE OPR SF异或OF=1 被减数小于减数则转移
64、JNL/JGE SF异或OF=0 被减数不小于减数则转移
65、JLE/JNE (SF异或OF)与ZF=1 被减数不大于减数则转移
66、JNLE/JG (SF异或OF)与ZF=0 被减数大于减数则转移根据CX寄存器的值转移
67、JCXZ (CX)=0 CX内容为零 则转移
常用汇编指令对标志位的影响相关推荐
- CTF PWN基础知识(寄存器、栈、汇编指令、标志位)详解
本文中寄存器缩写都有标注上中文含义,方便初学者理解记忆. 寄存器: 寄存器是计算机暂存指令.数据和地址的地方. 常用寄存器及其功能整理: RIP:程序计数寄存器,来存放下一条即将用来执行的指令的地址, ...
- [汇编语言]各个指令对于标志位的影响
1.ADD CF:若计算结果有向更高位的进位,CF=1,否则为0 OF:带符号数加法,两个操作数的符号相同,而结果却与操作数相反(正+正=负/负+负=正) 剩下的则根据结果:ZF:结果为0,PF:二进 ...
- 常用汇编指令(七大类)
常用汇编指令 汇编语言指令大致分为以下几类 一.传送类指令 二.算数运算类指令 三.位操作指令 四.串操作指令 五.控制转移类指令 六.处理器控制类指令 七.汇编指令伪指令 一.传送类指令 1.数据传 ...
- 详解加法与减法对CPU标志位的影响
相信对于每一个汇编初学者而言汇编中的标志位都是一个相当绕脑并且理解起来十分困难的东西.实际上标志位是一个非常简单的东西,之所以理解起来困难,是因为人为的添加了太多的解释进去. 例如1000 1111这 ...
- 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码...
浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...
- RISC-V 常用汇编指令
RISCV 常用汇编指令 相关寄存器 寄存器 ABI 名 用途 Saver x0 zero 读取时总为 0, 写入时不起任何效果 - x1 ra 存放函数返回地址 (return address) C ...
- Cortex-A7 常用汇编指令
Cortex-A7 常用汇编指令 一.处理器内部数据传输指令 1.mov 将数据从一个寄存器拷贝到另外一个寄存器,或者将一个立即数传递到寄存器里面 MOV R0,R1 @将寄存器 R1 中的数据传递给 ...
- 汇编语言中常用指令对标志位寄存器的影响
参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...
- 微型计算机DEC影响零标志位吗,汇编语言中常用指令对标志位寄存器的影响
参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...
最新文章
- linux获取命令的返回值,怎样获取shell函数的返回值及shell命令的返回值?
- python【力扣LeetCode算法题库】10-正则表达式匹配
- Python中使用高德API实现经纬度转地名
- jquery数组(排序)
- 演练:使用 Windows 窗体收集数据
- 用python编制一个的类_python之面向对象编制之封装
- 【按键精灵】一步两步脚本教程
- 企业仓库管理软件免费版要把处理好三个问题 利用凌云仓库管理软件免费版的智能补货功能可以快速的指定采购策略,这里面就需要及时了解每一张采购订单的执行情况,不但要防止遗漏订单情况的发生,更要防止情绪化采购
- iphone11主卡在上还是下
- Rayman的绝顶之路——Leetcode每日一题打卡17
- Linux之shell脚本编程、多命令、脚本、bc计算器、反引号、if语句、for语句
- 史上最全:Jetbrains全家桶31款软件 分类+功能整理收集
- 拼多多推广中出价是越高效果越好吗?
- MATLABR2012a如何激活
- IDM下载器免费高质量的Win下载工具无使用限制
- 简介企业如何通过企业erp系统实现智能化管理?
- 防水行业在vivo投放广告有效果吗?vivo广告开户全国代理商!
- http小型服务器搭建
- 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流
- Android Studio 编写无限查看QQ闪照APP
热门文章
- 全球ODM龙头华勤技术上线法大大电子合同
- 【渝粤教育】电大中专幼儿园课程论 (11)作业 题库
- bu薪水 华为cloud_华为CloudBU面试经验
- Python: 每日一题之平方和
- Git/Bitbucket Workflow
- 运行google play闪退的解决办法
- python编程大数据分析_大数据分析Python学习技巧
- 树莓派(Raspberry Pi) Pico usb输出(Hello World!)
- 城市选择与就业单位选择-成都体制内工作调研
- 张艺谋的作业与留下的哲学 - 酒馆来信 007