博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用汇编指令对标志位的影响
阅读量:3904 次
发布时间:2019-05-23

本文共 5630 字,大约阅读时间需要 18 分钟。

加法指令 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 乘积的高一半不为0                     IMUL指令的条件码设置为:                     CF OF=0 0 乘积的高一半为低一半的符号扩展.                     CF OF=1 1 其他情况无符号数除法 DIV (unsigned divide)     带符号数除法 IDIV (singed divide)指令对标志位的影响:不影响条件码。逻辑与 AND (logic and)指令对标志位的影响:                     指令执行后 CF 和 OF 置零,AF无定义。                     PF=1 结果操作数中1的个数为偶数时置1                     PF=0 结果操作数中1的个数为奇数时置0逻辑或 or (logic or)指令对标志位的影响:                     令执行后 CF 和 OF 置零,AF无定义。                     PF=1 结果操作数中1的个数为偶数时置1                     PF=0 结果操作数中1的个数为奇数时置0逻辑非 NOT (logic not)指令对标志位的影响:对标志位无影响异或 XOR (exclusice or)指令对标志位的影响:                     令执行后 CF 和 OF 置零,AF无定义。                     PF=1 结果操作数中1的个数为偶数时置1                     PF=0 结果操作数中1的个数为奇数时置0测试指令 TEST指令对标志位的影响:                     令执行后 CF 和 OF 置零,AF无定义。                     PF=1 结果操作数中1的个数为偶数时置1                     PF=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=150、JNZ(JNE) OPR   ZF=051、JS OPR             SF=152、JNS OPR           SF=053、JO OPR             OF=154、JNO OPR          OF=055、JP OPR             PF=156、JNP OPR           PF=057、JC OPR             CF=158、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内容为零 则转移

 

转载地址:http://qjoen.baihongyu.com/

你可能感兴趣的文章
Python 包、模块 概念 from 、import 关键字
查看>>
世界各国的手机号码
查看>>
通配符与正则表达式
查看>>
c++ 与 Java 之 红黑树 哈希表 辨析
查看>>
open GL 、DirectX、open CV、 open Inventor 、cocos2dx、unity3d、3dmax辨析
查看>>
理解矩阵
查看>>
彩虹七色的RGB值
查看>>
常用正则表达式实例
查看>>
java之面向对象——继承、封装、多态
查看>>
web网站架构演变过程
查看>>
c、 c++、 java 基本数据类型 对比辨析
查看>>
文件系统之 簇&块
查看>>
Android 音乐播放器 源码 下载 高仿魅族系统音乐播放器
查看>>
ERP生产线管理系统 with WAMP
查看>>
深度学习DeepLearning推荐论文清单 初学者入门推荐学习路线
查看>>
Ubuntu安装tensorflow报错:tensorflow-xx.whl not a supported wheel on this platform
查看>>
本证方程的本征值 与 特征方程的特征值 的 区别 辨析
查看>>
基于Android 精简版 WiFi 聊天 源码下载
查看>>
基于Android 精简版 Bluetooth 蓝牙 聊天 源码下载
查看>>
path与classpath区别
查看>>