[汇编语言]各个指令对于标志位的影响
1.ADD
CF:若计算结果有向更高位的进位,CF=1,否则为0
OF:带符号数加法,两个操作数的符号相同,而结果却与操作数相反(正+正=负/负+负=正)
剩下的则根据结果:ZF:结果为0,PF:二进制下1的个数为偶数,PF=1,SF:负数为1
1.1INC
除了对CF标志位不影响,其余都影响
2.SUB
CF:若计算的过程中有向更高位的借位,则CF=1,否则为0
OF:带符号数减法:两个操作数的符号相反,结果却与减数符号一致,则溢出,OF=1(正-负=负/负-正=正)
值得注意的是:加减法都是双操作数,而乘除法都是单操作数,具有隐含的寄存器,并且乘除法与PUSH/POP一样,操作数不可以为立即数
2.1DEC
DEC除了对CF的标志不影响,其余标志位均影响。
2.2NEG标志位的影响:
CF只有当操作数为0时不会溢出,其余都会溢出
而OF的溢出,则操作数为-128或者-32768,此时会溢出
3.乘法
只对OF/CF两个标志位有影响
并且OF=CF
3.1 MUL无符号数乘法
若乘积的高一半为0,那么表示没有溢出,即CF=OF=0,否则则为1
3.2 IMUL带符号数乘法
若乘积的高一半是低一半的符号扩展,则表示没有溢出,即CF=OF=0,否则则为1
4.除法
除法对标志位影响无定义
5.移位指令(移位指令,移位数只有1和寄存器CL)
5.1移位指令(SHL…)
CF:就是移入的数值
OF:OF只在移位数为1时(移位数大于1OF的值不确定),若符号位前后不一致,则表示溢出,即OF=1
PF/SF/ZF则根据移位的结果而改变
5.2循环移位指令
影响CF
对PF/SF/ZF的标志位不影响。
6 逻辑指令
6.1 not
not不影响标志位,并且not的操作数不允许是立即数,这与PUSH/POP/乘法/除法相同
XOR/AND/OR
CF/OF清零,其余根据结果进行判定
[汇编语言]各个指令对于标志位的影响相关推荐
- 常用汇编指令对标志位的影响
加法指令 ADD (addition) 指令对标志位的影响:CF=1 最高有效位向高位有进位CF=0 最高有效位向高位无进位OF=1 两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反. ...
- 详解加法与减法对CPU标志位的影响
相信对于每一个汇编初学者而言汇编中的标志位都是一个相当绕脑并且理解起来十分困难的东西.实际上标志位是一个非常简单的东西,之所以理解起来困难,是因为人为的添加了太多的解释进去. 例如1000 1111这 ...
- 汇编语言中常用指令对标志位寄存器的影响
参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...
- 微型计算机DEC影响零标志位吗,汇编语言中常用指令对标志位寄存器的影响
参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...
- 汇编语言中常见的标志位: CF, PF, AF, ZF, SF,TF,IF,DF, OF
一.运算结构标志位 1.CF(进位标志位):主要用来反映运算是否产生进位或借位,产生进位或借位则CF=1,否则CF=0. 2.PF(奇偶标志位):用于反映运算结果中"1"的个数的奇 ...
- CTF PWN基础知识(寄存器、栈、汇编指令、标志位)详解
本文中寄存器缩写都有标注上中文含义,方便初学者理解记忆. 寄存器: 寄存器是计算机暂存指令.数据和地址的地方. 常用寄存器及其功能整理: RIP:程序计数寄存器,来存放下一条即将用来执行的指令的地址, ...
- CMP指令、标志位、JCC指令总结
之前看到了cmp指令,总是记混.现在准备对CMP指令和汇编条件的判断做一个简单的总结. CMP指令 cmp(compare)指令进行比较两个操作数的大小 例:cmp oprd1,oprd2 当执行到C ...
- 汇编语言---乘法指令及符号扩展
汇编语言---有符号数乘法指令 介绍 格式及功能介绍 无符号数乘法指令 有符号数乘法指令 符号扩展及符号扩展语句 符号扩展 符号扩展语句 例子 无符号相乘 有符号数相乘 这是本文的重点: 有符号数相乘 ...
- TIM_GetCounter(TIMx)与TIM_GetCapture2(TIMx)的比较与TIM_GetCapture2(TIMx)对标志位TIM_IT_CCx的影响
TIM_GetCounter(TIMx)与TIM_GetCapture2(TIMx)的比较与TIM_GetCapture2(TIMx)对标志位TIM_IT_CCx的影响 1.TIM_GetCounte ...
最新文章
- 计算机论文工作进程记录,毕业设计进程记录
- mysql语句将日期转换为时间戳的方法
- C标准库和glibc(C运行库)的关系
- button按钮onclick触发不了_手把手教你深入CSS实现一个粒子动效的按钮
- python经济学函数_有没有python计量经济学的教程?
- shell脚本采用crontab定时备份数据库日志
- CCF数图焦点 | 数据治理
- 得推B2B2C商城源码v4.1
- Major GC 是清理老年代。 Full GC 是清理整个堆空间—包括年轻代和老年代。
- Discuz! 7.1 7.2 远程代码执行漏洞
- MatLab:数字图像处理实验
- Linux中rz命令与sz命令
- 两向量叉乘的计算公式_向量的叉乘运算法则
- 反转链表的实现(三种方法)
- Qt系列文章之 QAbstractItemModel(上)
- 向日葵远控无法启动——[rpcclient]rpcclient_default::connect is error
- c语言灵异事件之“字符串被吞”
- 【MYSQL数据库综合练习】第一部分
- * web H5 网页 浏览器 蓝牙 Bluetooth
- IP地址归属地在线查询平台