当前位置: 首页 > article >正文

加法器以及标志位

加法器的结构:

OF(溢出标志位),SF(符号标志位),ZF(0标志位),ZF(进位/借位标志位)

有符号数看标志位:OF,SF

无符号数看标志位:CF

有符号数,无符号数的符号看:ZF

关于OF的判断

① 从逻辑上判断,直接将题目给的数进行相加,相减手算:如果正+正=负,负+负=正那么OF=1

② 对于双符号位,即最高位\oplus次高位=1,则OF=1

③ 看最高位与次高位的进位:Cn+Cn-1=1,则OF=1

关于SF的判断:看有符号数计算结果的最高位,最高位为1(负),SF=1,最高位为0,SF=0

关于ZF的判断:看结果是否为0

关于ZF的判断:看Cin\oplusCout,也就是看Sub\oplusCout

ZF仅对无符号数起作用,如果是减法,则表示借位,如果是加法,则表示进位。

这里的Sub在加法器中很关键:

加法时,Sub=0,减法时Sub=1

在加法中,结果用上图表示:X+Y+Sub=X+Y+0

在减法中,结果用上图表示:X+(-Y)+Sub=X+(-Y)+1,也就是我们常说的将[Y]补=[-Y]补,各位取反,末位加1

回来看这个式子:Cin\oplusCout=Sub\oplusCout

① 若是加法,则Sub=0,两个无符号数相加,结果溢出,则CF=1

② 若是减法,则Sub=1,两个无符号数相减,即X-Y=X+[-Y],若最高位的进位为0,则CF=1

注:无论是有符号数,还是无符号数,计算机是不知道的,所有的数都是通过同一个部件进行计算的,最后是正是负,结果是否溢出,都是都是人为的通过标志位的逻辑表达式或其计算的结果判断的。

接下来看看怎么通过逻辑表达式得到计算结果:

设A的符号为A_{s},B的符号为B_{s},运算结果的符号为S_{s}

OF:

对于加法运算 A+B→S,若 A、B为负,且S为正,则说明发生溢出;或者,若 A、B 为正,且S为负,也说明发生溢出。

正+正=负---A0 B0 S1

负+负=正---A1 B1 S0

表达式:\bar{A}\bar{B}S+AB\bar{S}

对于减法运算 A-B→S,若 A为负、B为正,且F为正,则说明发生溢出;或者,若 A为正、B为负,且F为负,也说明发生溢出。

正+正=正-(-正)=正-负=负---A0 B1 S1

负-(-负)=负-正=正---A1 B0 S0

表达式:\bar{A}BS+A\bar{B}\bar{S}

SF:看运算结果的符号即可,SF=S


http://www.kler.cn/a/324289.html

相关文章:

  • OpenTelemetry 赋能DevOps流程的可观测性革命
  • CPU执行指令的过程
  • 如何从docker-hub下载镜像
  • mqtt学习笔记(一)
  • 51单片机基础05 定时器
  • 摘要与登记
  • Qt学习笔记
  • HTTP请求过程 part-1
  • 高通Android 12 音量API设置相关代码
  • (undone) MIT6.824 Lecture1 笔记
  • OpenGL ES 绘制一个三角形(2)
  • zookeeper 服务搭建(集群)
  • 解决SpringBoot 3.3.x集成Micrometer和Prometheus,导致项目阻塞,无法启动
  • 演示:基于WPF的DrawingVisual开发的频谱图和律动图
  • Meta首款多模态Llama 3.2开源:支持图像推理,还有可在手机上运行的版本 | LeetTalk Daily...
  • Python连接Kafka收发数据等操作
  • [leetcode]53_最大子数组(序列)和
  • 2024年空间计算/XR的现状:双子座阶段的探索与展望
  • 关于电商API接口接入及其相关应用分析【主流电商API接口】
  • 音视频处理工具FFmpeg与Java结合的简单使用
  • 【计算机网络 - 基础问题】每日 3 题(二十七)
  • Stable Diffusion绘画 | Checkpoint Merger 模型融合
  • 如何区分这个ip是真实ip,不是虚假的ip
  • 论文阅读 - SWATTING Spambots: Real-time Detection of Malicious Bots on X
  • RabbitMQ的高级特性-延迟队列
  • 个人计算机与网络的安全