OF:最高位进位⊕次高位进位(对带符号数才有意义)

最高位进位:进位出去(溢出去)\color {green}{最高位进位:进位出去(溢出去)}最高位进位:进位出去(溢出去)

次高位进位:进位到最高位(对带符号数来说即符号位)\color {green}{次高位进位:进位到最高位(对带符号数来说即符号位)}次高位进位:进位到最高位(对带符号数来说即符号位)

CF: sub⊕C(⊕为异或,CF对无符号数才有意义)

作减法则sub为1\color {green}{作减法则sub为1}作减法则sub为1

C为进位输出——最高位有无进位出去(溢出去)\color {green}{C为进位输出——最高位有无进位出去(溢出去)}C为进位输出——最高位有无进位出去(溢出去)

举例:

假设n=8,机器数X和Y的真值分别为x和y

OF:

来看带符号那一行:

0xB0——1011 0000 (-80)
0x8C——1000 1100(-116)

X+Y:0011 1100 (60) 8位机器数表示范围[127,−128],负溢出后加上2n,这题中即加上256\color {green}{8位机器数表示范围 [127,-128] , 负溢出后加上2^n,这题中即加上256}8位机器数表示范围[127,−128],负溢出后加上2n,这题中即加上256

−80−116+256=60\color {green}{-80-116+256=60}−80−116+256=60

关于溢出的处理,可以参照这个博客:计算机内加减法的溢出处理

对原数X(原数+加数=结果):\color {red}{对原数X(原数+加数=结果):}对原数X(原数+加数=结果):

最高位进位为1(最高位1+1,进位),次高位没有进位(0+0),1⊕0=1,则OF为1\color {red}{最高位进位为1(最高位1+1,进位),次高位没有进位(0+0),1⊕0=1,则OF为1}最高位进位为1(最高位1+1,进位),次高位没有进位(0+0),1⊕0=1,则OF为1

CF:

来看无符号那一行:

0xB0——1011 0000 (176)
0x8C——1000 1100(140)

X+Y:0011 1100 (60) 8位机器数表示范围[127,−128],正溢出后减去2n,这题中即减去上256\color {green}{8位机器数表示范围 [127,-128] , 正溢出后减去2^n,这题中即减去上256}8位机器数表示范围[127,−128],正溢出后减去2n,这题中即减去上256

对原数X(原数+加数=结果):\color {red}{对原数X(原数+加数=结果):}对原数X(原数+加数=结果):

加法,sub=0\color {red}{加法,sub=0}加法,sub=0

最高位进位(1+1,溢出去了),进位输出C=1\color {red}{最高位进位(1+1,溢出去了),进位输出C=1}最高位进位(1+1,溢出去了),进位输出C=1

CF=sub⊕C=0⊕1=1\color {red}{CF=sub⊕C=0⊕1=1}CF=sub⊕C=0⊕1=1

最后一提:计算机对带/无符号数的机器码统一处理\color {blue}{最后一提:计算机对带/无符号数的机器码统一处理}最后一提:计算机对带/无符号数的机器码统一处理

OF,CF等标志位是由机器码运算结果决定的,是否为带符号数并不影响\color {blue}{OF,CF等标志位是由机器码运算结果决定的,是否为带符号数并不影响}OF,CF等标志位是由机器码运算结果决定的,是否为带符号数并不影响

所以,才会有带不带符号它的OF,SF,CF都一样\color {green}{所以,才会有带不带符号它的OF,SF,CF都一样}所以,才会有带不带符号它的OF,SF,CF都一样

终极简单的判定方法:

求OF就把机器码转成带符号数然后运算,看有没有溢出

求CF同理,转成无符号数,然后运算看有没有溢出

OF CF 标志位的判定相关推荐

  1. 关于OF CF 标志位对于判定两整数大小关系(无符号数及有符号数情况)作用的讨论

    在x-86 64 IA32 体系下,处理器通过对两数求差(保存或不保存结果)然后读取被改变的条件码来判定结果的正负,进而得知两整数大小关系.其背后的逻辑关系设计非常精妙,然而大部分书籍资料中都只是一笔 ...

  2. 溢出OF和进位CF标志位的判定

    一.学习CF与OF,要始终牢记一点.CF是无符号数溢出标志,OF是有符号数溢出标志. 通俗一点说就是,即使有符号数相加/相减导致了CF=1也没什么意义,不能说明结果的正确与否.此时,OF=1, 则说明 ...

  3. 为什么INC,DEC指令不影响CF标志位呢?

    引言 我们知道执行算数运算指令的时候,当结果的最高位与进位或者借位时会把状态寄存器FLAGS的CF位置为1,否则置为0,但是为什么INC和DEC这样的指令不影响CF标记位呢? 怀着对这个问题的疑惑,在 ...

  4. x86架构下 CF与OF标志位 带符号和无符号运算 详解

    针对能够影响OF和CF标志位的指令,一般来说是涉及到数据运算的指令,这里使用add举例,即不区分有无符号的加法指令,参与运算的数据,从二进制层级去考虑. CF标志位 对于CF,它是carry flag ...

  5. 汇编中有符号与无符号数以及CF,OF标志位的区分

    汇编中有符号与无符号数以及CF,OF标志位的区分 一. 只有一个标准! 首先需要知道,计算机对数值的存储采用补码形式存储,一来避免了+0和-0的尴尬,二来数值的加法和减法可以统一为补码的加法. 在汇编 ...

  6. CF、SF、OF、ZF标志位

    没学汇编,这种题我真是做一道错一道:-( OF(overflow flag) 溢出标志位 溢出标志位 OF = 1 表示带符号整数运算时结果发生溢出.对于无符号整数运算,OF没有意义. 对于有符号数的 ...

  7. [汇编语言]各个指令对于标志位的影响

    1.ADD CF:若计算结果有向更高位的进位,CF=1,否则为0 OF:带符号数加法,两个操作数的符号相同,而结果却与操作数相反(正+正=负/负+负=正) 剩下的则根据结果:ZF:结果为0,PF:二进 ...

  8. debug 标志位说明

       of  df  if  sf   zf   af   pf   cf 标志位为1 ov  dn ei  ng  zr   ac  pe  cy 标志位为0 nv  up di  pl   nz ...

  9. Win32汇编:数组与标志位测试总结

    整理复习汇编语言的知识点,以前在学习<Intel汇编语言程序设计 - 第五版>时没有很认真的整理笔记,主要因为当时是以学习理解为目的没有整理的很详细,这次是我第三次阅读此书,每一次阅读都会 ...

最新文章

  1. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | native 函数查询 | dalvik_system_DexFile.cpp#defineClassNative 函数 )
  2. mssql的T-SQL教程(从建登陆到建库、表和约束)
  3. IO-5(InputStreamReader、OutputStreamWriter、序列化流、反序列化流、Serializable、transient)
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1075:药房管理
  5. Ajax/CSS表格设计汇集
  6. 基于java的数据结构学习——数组实现的队列和循环队列及性能对比
  7. Docker-构建/启停容器镜像及常用命令介绍
  8. 怎么看电脑配置高不高_辣椒产量高不高?关键看播种前的种子处理,你知道怎么做吗?...
  9. 无监督学习:Linear Dimension Reduction(线性降维)
  10. paip.提升性能---C#.NET程序内存占用过多以及OutOfMemory解决方法
  11. opera档案学习(一)
  12. 关于用户登录的记住密码实现思路(考虑到安全问题)
  13. 初识:心血管磁共振(CMR)成像
  14. wso2_使用WSO2开发
  15. Luogu1527[国家集训队]矩阵乘法
  16. UVa 10141 - Request for Proposal
  17. 微信支付-vue 实现微信支付-前端篇
  18. Dreamweaver 1 网页制作
  19. 门德尔松 E小调小提琴协奏曲 个人赏析
  20. hudi系列-upsert写过程

热门文章

  1. VScode调试方法
  2. C#创建cookie及js删除cookie
  3. 怎么判断目标学校是强com还是弱com?
  4. 热身赛—H - 扫雷?踩雷!!
  5. 小马哥----高仿三星i8552刷机 详细拆机主板图与开机界面图。2015新主版机 4.12系统
  6. 数据分析-解读excel回归分析-2019/9/27
  7. CPA广告 CPS广告 CPC广告 CPM广告分别什么意思?
  8. 什么时候需要用malloc开辟空间?
  9. spark版本bug总结
  10. MapFields和并行计算(OpenFOAM)