CF、SF、OF、ZF标志位

2023-11-19

没学汇编,这种题我真是做一道错一道:-(

OF(overflow flag) 溢出标志位

溢出标志位 OF = 1 表示带符号整数运算时结果发生溢出。对于无符号整数运算,OF没有意义。
对于有符号数的溢出判断方式有:
1)采用一位符号位:思想为:'-'+'-'='+' 或 '+'+'+'='-'则为溢出,其他情况无溢出
2)采用双符号位:s1、s2表示运算结果的两个符号位
	① s1s2 = 00 表示正数,无溢出
	② s1s2 = 01 表示结果正溢出 ,即 '-'+'-'='+',且s2表示当前运算符号'-',s1表示原本正确的符号'+'
	③ s1s2 = 10 表示结果负溢出 ,即 '+'+'+'='-',且s2表示当前运算符号'+',s1表示原本正确的符号'-'
	④ s1s2 = 11 表示结果为负数,无溢出
3)采用一位符号位,根据数据位的进位情况判断溢出
	Cs 表示两数之间符号位运算的进位
	C1 表示最高数值位
	V = Cs⊕C1 ,若 V=0 表示无溢出;V=1 表示有溢出
注:最高位产生进位不一定有溢出,可参考【图三】-(3 第三问

ZF(zero flag) 零标志位

ZF = 1表示结果为0,无论是有符号数还是无符号数,ZF都有意义

CF(carry flag) 进/借位标志位

表示无符号整数数加/减运算时的进位/借位。
	含义:
		加法时,CF = 1表示无符号数加法溢出。
		减法时,CF = 1表示有借位,即不够减。
	计算:(ALU运算逻辑)
		加法时:SUB = 0
		减法时:SUB = 1
		CF = 最高位进位 ⊕ SUB
		--可参考【图二】中右边四个运算式子 或【图四】
对于有有符号数的整数运算没有意义
	但是真要看的话,CF=最高位进位输出,具体见下方题型归纳。
		--可参考【图三】(2)、(3)问

注:
1)数据存放在内存或CPU寄存器中都统一使用有符号数的补码。
2)ALU中运算无视有无符号,统一使用一套逻辑,只会根据输入信号进行逻辑运算
若为加法: [x]补+[y]补
若为减法: [x]补-[y]补 = [x]补+[y]求补
3) 一个数的补码与对一个数求补的区别:
补码是对于有符号数而言的
求法:对除符号位外全部取反,末尾+1
如: -5 原码 = 1101 ->除符号位取反:1010 ->末尾+1->1011=-5的补码( 红色为符号位)
求补则无视符号位,这就对于了上面说的:“ALU无视有无符号,统一使用一套逻辑”
求法:全部位数取反,末尾+1;见【图二】ALU电路图
如: 对 -5 求补 :-5 原码=1101->全部位取反:0010->末尾+1->0011
注:正数补码=原码,但 无论正负都可以求补。

SF(symbol flag) 符号标志位

结果为负,即符号位为1时SF=1,否则为0.
注意:当产生溢出时,说明符号标志位置出错,可参看OF-2)-②与③

以上来自王道课本

放两张wd上的相关视频截图吧

在这里插入图片描述

【图一】
在这里插入图片描述

1)“由加法器的原理图,加法器的方式控制MUX用于控制加减法,如上图,当M=1时进行S=A+B操作,当M=0时进行S=A-B操作。当M=0(减法)时,各个异或门对B的各位进行求反,并将1作为初始进位加入结果,也就是执行对B的求反加1,即求补操作。” 也就是说!B是有符号数时,无论符号位是0还是1,只要M=0, 就统统对B执行求补操作。
2)CPU只会根据输入信号进行逻辑运算,在硬件级别是没有有符号无符号的概念,运算结束会根据运算前的信号和输出信号来设置一些标志位,是不是有符号由写程序的人决定,标志位要看你把操作数当有符号还是无符号来选择。
大多数计算机内部的有符号整数都是用补码,就是说无论正负,这个计算机内部只用补码来 编码。
以上摘自有符号数的加减法 和无符号数的加减法,和,系统是如何识别有符号数和无符号数的

【图二】


本文着重研究CF标志位

题型总结

虽说总结,但是王道上相关的题目也就两道:-(
待我见识多几道题目再更好完善,如果有大佬能点拨一二更好

其一,题目显示给出这为有符号数

上面提到,机器是无法分辨现在正在执行的是有符号还是无符号数的运算,有无符合是程序给的定义,这也因此让一些标志位变得有意义:如CF。
既然题目人为的定义为了负数,那么我们就可以人为的“将减法转换为加法指令”(当然,如果如果要求的是加法那就不用管了),再然后由于是求CF位,那么我们需要将其视为无符号数,进行相加。
总结就是:使用补码规则将减法转化为加法,判断逻辑为无符号数的加法(具体见上面)。

在这里插入图片描述
【图三】

其二:数值以位串形式存放在寄存器中

寄存器中的数值运算是用ALU进行的。上面提到,ALU无视有无符号数统一使用一套逻辑,再结合开头提到的 注2) 以及无符号数的运算逻辑,即可得计算方法:

若为加法:[X]+[Y] 直接运算,
CF=最高位进位⊕0
若为减法:[X]-[Y] 对[Y]求补,后有:[X]-[Y]=[X]+[Y]求补
CF=上式最高位进位⊕1
在这里插入图片描述

【图四】

一张放错位置的图:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CF、SF、OF、ZF标志位 的相关文章

  • 冒泡排序/选择排序/插入排序/快速排序/归并排序/桶排序/堆排序/希尔排序/计数排序/基数排序/二分查找/广度优先搜索/深度优先搜索

    排序算法 冒泡排序 Bubble Sort 通过重复地比较相邻的元素并交换它们 使得最大 或最小 的元素逐渐移动到列表的一端 从而实现排序 选择排序 Selection Sort 在未排序的部分中 选择最小 或最大 的元素 并将其放置在已排
  • 【go语言】error错误机制及自定义错误返回类型

    简介 Go 语言通过内置的 error 接口来处理错误 该接口定义如下 type error interface Error string 这意味着任何实现了 Error 方法的类型都可以作为错误类型 在 Go 中 通常使用 errors
  • 【开题报告】基于SpringBoot的工资管理系统

    1 研究背景 基于SpringBoot的工资管理系统的选题背景主要可以从以下几个方面来考虑 1 企业运营管理需求 在现代企业中 薪资管理是人力资源管理的重要组成部分 直接影响到员工的工作积极性和企业的运营成本 随着企业规模的扩大和业务复杂性
  • ASP.NET Core路由中间件[1]: 终结点与URL的映射

    一 路由注册 我们演示的这个ASP NET Core应用是一个简易版的天气预报站点 如果用户希望获取某个城市在未来 N 天之内的天气信息 他可以直接利用浏览器发送一个GET请求并将对应城市 采用电话区号表示 和天数设置在URL中 如下图所示
  • 基于SpringBoot的流浪动物救助网站

    文章目录 项目介绍 主要功能截图 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringBoot的流浪
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位
  • Spring框架-Spring Bean管理

    文章目录 Spring Bean管理 Spring Bean 配置方式 使用XML配置方式 User java
  • springboot git配置文件自动刷新失败问题排查

    http ip port refresh 说明 springBoot版本是1 5 9 接口路径与2 x 不同 路径区别 refresh VS actuator refresh 用postman调用refresh接口刷新git配置 报错如下
  • 【计算机开题报告】智能社区管理系统

    一 设计目的及意义 随着经济的发展 人们生活水平的提高 工作和日常事务繁忙 人们对服务就有了更深入 更精细的要求 而计算机技术的迅猛发展 使得这种需求变为可能 传统的社区服务业也与互联网技术结合更加密切 这是社会发展的必然趋势 为解决社区中
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】springbootstone音乐播放器的设计与实现

    随着我国经济的高速发展与人们生活水平的日益提高 人们对生活质量的追求也多种多样 尤其在人们生活节奏不断加快的当下 人们更趋向于足不出户解决生活上的问题 stone音乐播放器展现了其蓬勃生命力和广阔的前景 与此同时 为解决用户需求 stone
  • 数据结构——排序

    前言 哈喽小伙伴们好久不见 也是顺利的考完试迎来了寒假 众所周知 不怕同学是学霸 就怕学霸放寒假 假期身为弯道超车的最佳时间 我们定然是不能懒散的度过 今天我们就一起来学习数据结构初阶的终章 七大排序 本文所有的排序演示都为升序排序 目录
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • SpringBoot中整合ElasticSearch快速入门以及踩坑记录

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目 若依前后端分离版手把手教你本地搭建环境并运行项目 本地运行若依前后端分离 CSDN博客 参考上面搭建项目 ElaticSearch Elasticsearch 是java开发的 基于
  • (2024最新整理)Java最全八股文及答案!

    Java的特点 Java是一门面向对象的编程语言 面向对象和面向过程的区别参考下一个问题 Java具有平台独立性和移植性 Java有一句口号 Write once run anywhere 一次编写 到处运行 这也是Java的魅力所在 而实
  • 2024史上最全Java面试八股文(带全部答案)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 「优选算法刷题」:移动零

    嗨 这个假期罗根开始接触了算法 在为今年的蓝桥杯做准备 所以 开个新专栏 记录记录自己做算法题时的心得 一 题目 给定一个数组 nums 编写一个函数将所有 0 移动到数组的末尾 同时保持非零元素的相对顺序 请注意 必须在不复制数组的情况下
  • 用栈实现队列(OJ中报错的处理)

    用栈实现队列 ERROR AddressSanitizer myQueueFree函数中栈的释放处现了问题 没有调用StackDestory而是直接free了 这个是栈初始化时 capacity与malloc申请的空间大小没有匹配 请你仅使
  • 最大流-Dinic算法,原理详解,四大优化,详细代码

    文章目录 零 前言 一 概念回顾 可略过 1 1流网络 1 2流 1 3最大流 1 4残留网络 1 5增广路

随机推荐

  • 服务器虚拟化解决方案

    根据以往经验推断 一台主流双路 PC 服务器可以承担 3 6 个应用系统在其 上运行 本期项目总共有 N 个业务系统 考虑到硬件资源需具备一定的冗余能 力和实现高可用 HA 在线迁移 动态调度 后期扩展等诸多因素 推荐 2 台双 路 PC
  • 智能指针 -- unique_ptr

    源码分析 源码链接 gcc unique ptr h at master gcc mirror gcc GitHub 上面链接中的源码是unique ptr的完整定义 我们来简化其类结构看看 template
  • Android基础面试常常死在这几个问题上,小白也能看明白

    前言 疫情一过 我相信将会是面试求职的高峰时期 如果此时手里有份高质量的面试宝典 那么你将得心应手面对考官各种问题 虽然不敢保证你能应聘上心仪的职位 但是能保证看完这些内容你的收获将超乎你的想象 此份面试宝典搜集各大网络平台 如果侵权 请您
  • 【黑叔说】之《进阶必备知识》(一)

    前言 每天一分钟 通勤跟我学 进阶知识点 系列的知识 来自互联网 由黑叔总结或改编 仅供参考 一 前端模块化 二 webpack简易版实现 function modules function require fileName const f
  • 单片机流水灯C语言实验报告,单片机LED灯实验报告.doc

    桂林电子科技大学 实验报告 2016 2017 学年第一学期 开 课 单 位 海洋信息工程学院 适用年级 专业 14级机械 课 程 序 号 BS1615000 03 课 程 代 码 BS1615000 实 验 名 称 流水灯 流水灯实验报告
  • 6种方法计算神经网络参数量Params、计算量FLOPs、Macs简单代码

    方法1 统计模型参数量 total sum param nelement for param in model parameters print Number of parameter 2fM total 1e6 方法2 统计flops和参
  • Python——报数出圈

    编写程序 模拟报数游戏 有n个人围成一圈 顺序编号 从第一个人开始从1到k 假设k 3 报数 报到k的人退出圈子 然后圈子缩小 从下一个人继续游戏 问最后留下的是原来的第几号 n int input 请输入总人数 n k int input
  • 解决JavaScript中new Date(string)在IE不兼容的问题

    1 问题描述 let date 2018 09 17 let dateStr new Date date let year dateStr getFullYear let month dateStr getMonth 1 let day d
  • 【Unity2d】带你制作一款类似于金山打字的小游戏

    博主大概08年开始接触电脑游戏 当时玩的是我哥的电脑 那时候家里没网 只可以玩电脑上自带的单机游戏 比如扫雷 蜘蛛纸牌等等 当然还有红色警戒 冰封王座 星际争霸 帝国崛起等等 这些大概是我哥当时在大学下载的 也是那个时候对游戏充满了兴趣 记
  • 第十一届蓝桥杯c/c++省赛大学B组(第一次)

    目录 A题 跑步训练 5 模拟 B题 纪念日 5 年月日 C题 合并检测 10 找规律 D题 REPEAT程序 10 模拟 E题 矩阵 15 DP F题 整数序列 15 G题 解码 20 模拟 H题 走方格 20 dfs I题 整数拼接 2
  • 世界两万英尺范围内,均分布有运维体系架构

    几年前 Microsoft 与技术领先的社区专家合作发布了一本受欢迎的指导书 标题为 适用于容器化 NET 应用程序的 NET 微服务 深入探讨了构建分散式应用程序的原则 模式和最佳做法 其中包括一个功能齐全的微服务参考应用程序 展示了体系
  • [从零开始学DeepFaceLab-5]: 使用-命令行八大操作步骤-第2步:从源视频中提取图片

    目录 总体流程 步骤2 从源视频中提取图片 2 0 源视频文件和大小的选择 2 1 命令 2 extract images from video data src bat 必选
  • Qt

    我的RFID程序中 Widget继承自QWidget 在Widget h中 public定义了数据成员 QTableWidget cardtableWidget 在Widget cpp的Widget构造函数中 初始化了QTableWidge
  • 简明YAML教程

    前言 yaml是一种用来描述配置的语言 其可读性和简洁性较json更胜一筹 用yml写成的配置文件 以 yml结尾 YAML的基本语法规则 大小写敏感 使用缩进表示层级关系 缩进是使用空格 不允许使用tab 缩进对空格数目不敏感 相同层级需
  • 浏览器播放rtsp视频流:3、rtsp转webrtc播放

    浏览器播放rtsp视频流 3 rtsp转webrtc播放 文章目录 浏览器播放rtsp视频流 3 rtsp转webrtc播放 1 前言 2 rtsp转webRTC 3 初步测试结果 4 结合我们之前的onvif gSoap cgo的方案做修
  • z-index 与 元素的层叠顺序

    z index 属性设置元素的堆叠顺序 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面 注释 元素可拥有负的 z index 属性值 注释 Z index 仅能在定位元素上奏效 例如 position absolute 说明 该属
  • Basic Level 1018 锤子剪刀布 (20分)

    题目 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 1 0 5
  • c++ 学习之set和multiset区别

    区别 set不允许有重复的值 multiset可以有重复的值 代码示例 include
  • 技术干货分享,万字长文深度解读机器翻译

    编者按 在 机器翻译是如何炼成的 上 的文章中 我们回顾了机器翻译的发展史 在本篇文章中 我们将分享机器翻译系统的理论算法和技术实践 讲解神经机器翻译具体是如何炼成的 读完本文 您将了解 神经机器翻译模型如何进化并发展成令NLP研究者万众瞩
  • CF、SF、OF、ZF标志位

    没学汇编 这种题我真是做一道错一道 OF overflow flag 溢出标志位 溢出标志位 OF 1 表示带符号整数运算时结果发生溢出 对于无符号整数运算 OF没有意义 对于有符号数的溢出判断方式有 1 采用一位符号位 思想为 或 则为溢