汇编问题关于CF寄存器和OF寄存器书上看到的一句话:The CPU uses an interesting mechanism to determinethe state of the Overflow flag after an addition or subtraction operation. The Carry flag is exclusive ORed with the high bit of t

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 19:57:43
汇编问题关于CF寄存器和OF寄存器书上看到的一句话:The CPU uses an interesting mechanism to determinethe state of the Overflow flag after an addition or subtraction operation. The Carry flag is exclusive ORed with the high bit of t

汇编问题关于CF寄存器和OF寄存器书上看到的一句话:The CPU uses an interesting mechanism to determinethe state of the Overflow flag after an addition or subtraction operation. The Carry flag is exclusive ORed with the high bit of t
汇编问题关于CF寄存器和OF寄存器
书上看到的一句话:The CPU uses an interesting mechanism to determine
the state of the Overflow flag after an addition or subtraction operation. The Carry flag is exclusive ORed with the high bit of the result. The resulting value is placed in the Overflow flag.
就是说汇编里的OF寄存器里的值是CF和运算结果的最高位异或的结果.
书上的例子:
两个 8位 二进制数 10000000 and 11111110 相加
CF = 1 MSB = 0, 1 XOR 0 所以OF = 1.
1 0 0 0 0 0 0 0
+ 1 1 1 1 1 1 1 0
CF 1 0 1 1 1 1 1 1 0
结果和书上所说的一致.

但是如果对于8位 二进制数1111 1111和0000 0001

0 0 0 0 0 0 0 1
+ 1 1 1 1 1 1 1 1
CF 1 0 0 0 0 0 0 0 0

CF = 1 MSB = 0,1 XOR 0 所以OF = 1,但是如果这两个数是有符号数,分别为1和-1,它们相加OF必定为0!

那这句话有什么问题吗?还是我的例子有问题?

汇编问题关于CF寄存器和OF寄存器书上看到的一句话:The CPU uses an interesting mechanism to determinethe state of the Overflow flag after an addition or subtraction operation. The Carry flag is exclusive ORed with the high bit of t
CF,是运算结果的《最高位》的进位.
运算结果的《次高位》,还有一个进位.
OF寄存器里的值,是CF和《次高位的进位》异或的结果.
即,相邻的两个进位,异或之后,就成了 OF.

汇编问题关于CF寄存器和OF寄存器书上看到的一句话:The CPU uses an interesting mechanism to determinethe state of the Overflow flag after an addition or subtraction operation. The Carry flag is exclusive ORed with the high bit of t 关于汇编里减法对标志寄存器FLAG的影响sub bh bl ;BH=48H,HL=48H,即BX=4848H ;CF=0,ZF=0,SF=0,OF=1,AF=1,PF=1我的想法是 CF为进位、借位,此时CF为0运算结果是0,此时ZF应该为1,为什么书上为0?OF为什么为1?AF为 32位寄存器和64位寄存器是怎么样存放4294967295,16进制和32位寄存器的关系? 单片机的寄存器和存储器的区别 汇编语言 标志寄存器 状态位的问题: MOV AX,34C5H ADD AX,546AH解:0011010011000101 0101010001101010------------------------------------- 1000100100101111答案是:CF:0;SF:1;ZF:0;AF 0;OF 1;PF:0;CF,SF,Z 关于汇编中的LDS指令例:lds 寄存器,源操作数书中描述:当指令指定的是16位寄存器时,把源操作数存储单元中存放的十六位偏移地址取出存放在寄存器中,然后把源操作数+2的十六位数装入指 汇编中OF和CF的问题刚学汇编,看了一眼书.在ADD运算和SUB运算中,得到的结果似乎都是无符号运算的结果,这样的话CF的标志好确定,问题出在OF.我看老师的课件上OF的判断是直接根据运算的结果来 51单片机汇编中的寄存器R0、R1、R2如果用c语言写的话怎么表示 请教“程序计数器PC”请问“程序计数器PC”是否属于“通用寄存器”?看到有的书上说属于,比如说“ARM”.可又有的书上说不属于,是专用寄存器.那它到底属不属于呢.比如说8086和ARM 汇编指令中给AX寄存器清0并使CF=0,下面那个是错的:MOV AX,0 XOR AX,AX SUB AX,AX AND AX,0 汇编标志寄存器如何判断of,pf的值比如bl,48h bh,48hsub bl,bh pf=1是为什么of又是如何判断的 什么是寄存器?寄存器与存储器有何区别?两者是否一样?存储器(包括内存和外存)与寄存器均存在CPU中吗? 寄存器和存储器的区别希望详细一些. PLC在扫描工作过程中,输入映像寄存器和输出映像寄存器各起什么作用 汇编 eax寄存器和AX,AH,AL之间的关系是怎样的eax 与 ax 是否独立?如果eax被使用了那么给ax赋值会不会影响eax? 汇编标志寄存器标志位的C语言函数实现1、进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位.如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0.2、 诊断卡说明书上说处理器寄存器的测试即将开始,非屏蔽中断即将停用, 汇编语言进位与借位的问题.2-3是否会产生借位?从常理上看好像产生了借位,标志寄存器中CF应该置位,但在计算机中,减法都会转换成补码的加法,以8位2进制数为例,2的补码是00000010,-3的补码是11