CF和OF的区别

进位标志CF和溢出标志OF的区别:

有符号数和无符号数只是认为的进行区分,计算机从来不区分有符号数和无符号数。对于运算的数来说,只要符合进位的情况,CF就置1.只要符合溢出的情况,OF就置1.但是后续的进行的一些数值判断等操作,无符号数多依据CF标志进行,有符号数多依据OF标志进行。如比较两个数的大小,无符号数根据CF标志进行,有符号数依据OF标志进行。

•    计算机硬件判断溢出的方法如下:
    最高位有进位但次高位没有进位,或者最高位无进位但次高位有进位;也就是最高位和次高位一个有进位一个无进位。(最高位和次高位进位不一致的时候溢出)

•    我们不是机器不使用这么机械的方法,可以使用如下规则(汇编教材第二版第19页):
    只有当两个相同符号数相加(含两个不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出。

•    例如:3AH+7CH=00111010B+01111100B=10110110B=B6H
    次高位一个是0一个是1,但还有一个低位进位1,所以次高位有进位;最高位两个0,还有次高位进位,结果只是1没有进位,所以计算机判断有溢出。
    我们判断,看最高位,两个数最高位相同为0,相加后结果最高位为1,所以有溢出。

再如:3AH+8DH,我们可以马上判断出没有溢出。因为这是两个不同符号数相加。

利用调试程序可以帮助你验证。

将数据按有符号数进行补码变换求出对应十进制真值,然后判断也可以,但比较麻烦,不如上述规则简单明了

参考资料:

http://www5.zzu.edu.cn/qwfw/ynjd/clqjg/4a44c05f3f5a870e013f6424857a043d.html

时间: 2024-08-24 01:54:33

CF和OF的区别的相关文章

Emacs教程(三)

上回说到怎么在Emacs中移动光标,这回将介绍如何在Emacs中编辑文本.任何一款文本编辑软件的核心功能当然就是编辑文本,Emacs也不例外,虽然它也有许多其它强大的本领,但都离不开文本编辑.闹,文本编辑说白了也就是打字,专业点说我们需要实现一种所见即所得输入方式.在Emacs中打字和Notepad中没什么区别,一样也是打开一个文件直接往里面敲字符就可以了,中文也行.这个和Vim区别比较大,我们还需要知道自己是在哪个模式下,不然乱敲一气也不见屏幕有什么反应. 一.文件操作 刚才我们说到编辑文本就

标志寄存器(学习汇编)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NT IOPL OF DF IF TF SF ZF AF PF CF 未使用 嵌套标志 I/O权限标志占2位 溢出标志 方向标志 中断允许标志 单步标志 符号标志 零标志 未使用 辅助标志 未使用 奇偶标志 未使用 进位标志 1.CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都有可能不同)具有以下3种作用. (1)用来存储相关指令的某些执行结果: (2)用来为CPU执行相关指令提供行为依据: (3

汇编基础(二)

1.ret指令 ret指令用栈中的数据,修改IP的内容,从而实现近转移! CPU执行ret指令时,进行2步操作:i>.(IP) = ((ss)*16 + (sp)).ii>.(sp) = (sp)+2 CPU执行ret指令,相当于:pop IP; CPU执行retf指令,相当于pop IP pop CS; 2.call 标号 CPU执行call指令时,进行如下的2步操作: (1).(sp) = (sp)-2 ((ss)*16+(sp)) = (IP): (2).(IP) = (IP) + 16

汇编语言学习第十一章-标志寄存器

本博文系列参考自<<汇编语言>>第三版,作者:王爽 8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW).除了前面介绍的寄存器.本博文将介绍最后一个寄存器,标志寄存器.不同于之前的寄存器,标志寄存器是按位起作用的.其每一位都有特殊的含义. 8086标志寄存器的结构如下图所示: 标志寄存器的1,3,5,12,13,14,15都没有特殊含义.其0,2,4,6,7,8,9,10,11用作标志位使用. 11.1 ZF标志(zeros flag) 标志寄存器第6位

汇编语言——标志寄存器

标志寄存器 flag 和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义. 而flag寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息. 8086CPU的flag寄存器的结构: ZF标志 flag的第6位是ZF,零标志位(zero flag). 它记录相关指令(add.sub.mul.div.inc.or.and操作)执行后,结果是否为0 .ZF = 1结果不为0,ZF = 0结果为0. mov.push.pop等传送指令不修改标志寄存器的信息.

PBN转弯保护区作图回顾

假期的最后一天,是该小结一下的时候了. 风螺旋有了自己中式风格的Logo,大家是否喜欢? 过去的春节假期,我们从学习CAD入手,回顾了风螺旋在PBN中的多种情况,画了很多的图,写了不少的文字,或许现在不能一一详看,留到以后慢慢回顾吧. 1.小角度飞越转弯图例 画一个小角度飞越转弯保护区 飞越转弯的风螺旋结束点目前仅能通过递归的算法来实现,手工绘图这一位置点只能是近似精确. 2.大角度飞越转弯图例 画一个PBN大角度飞越转弯保护区 风螺旋画法与传统画法的最大区别在于,当转弯基础参数.位置点确定以后

JAR、WAR、EAR的使用和区别

Jar.war.EAR.在文件结构上,三者并没有什么不同,它们都采用zip或jar档案文件压缩格式.但是它们的使用目的有所区别: Jar文件(扩展名为. Jar,JavaApplication Archive)包含Java类的普通库.资源(resources).辅助文件(auxiliary files)等 War文件(扩展名为.War,Web Application Archive)包含全部Web应用程序.在这种情形下,一个Web应用程序被定义为单独的一组文件.类和资源,用户可以对jar文件进行

SurfaceView, TextureView, SurfaceTexture等的区别

SurfaceView, GLSurfaceView, SurfaceTexture以及TextureView是Android当中名字比较绕,关系又比较密切的几个类.本文基于Android 5.0(Lollipop)的代码理一下它们的基本原理,联系与区别. SurfaceView从Android 1.0(API level 1)时就有 .它继承自类View,因此它本质上是一个View.但与普通View不同的是,它有自己的Surface.我们知道,一般的Activity包含的多个View会组成Vi

磁盘磁盘MBR与GPT的区别

基本磁盘与动态磁盘    磁盘的使用方式可以分为两类:一类是“基本磁盘”.基本磁盘非常常见,我们平时使用的磁盘类型基本上都是“基本磁盘”.“基本磁盘”受26个英文字母的限制,也就是说磁盘的盘符只能是26个英文字母中的一个.因为A.B已经被软驱占用,实际上磁盘可用的盘符只有C-Z 24个.另外,在“基本磁盘”上只能建立四个主分区(注意是主分区,而不是扩展分区):另一种磁盘类型是“动态磁盘”.“动态磁盘”不受26个英文字母的限制,它是用“卷”来命名的.“动态磁盘”的最大优点是可以将磁盘容量扩展到非邻