汇编中OF和CF的问题刚学汇编,看了一眼书.在ADD运算和SUB运算中,得到的结果似乎都是无符号运算的结果,这样的话CF的标志好确定,问题出在OF.我看老师的课件上OF的判断是直接根据运算的结果来
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 01:50:02
汇编中OF和CF的问题刚学汇编,看了一眼书.在ADD运算和SUB运算中,得到的结果似乎都是无符号运算的结果,这样的话CF的标志好确定,问题出在OF.我看老师的课件上OF的判断是直接根据运算的结果来
汇编中OF和CF的问题
刚学汇编,看了一眼书.
在ADD运算和SUB运算中,得到的结果似乎都是无符号运算的结果,这样的话CF的标志好确定,问题出在OF.
我看老师的课件上OF的判断是直接根据运算的结果来判断的,若两个操作数符号相同而运算结果和操作数不相同,则OF会被设置为1,可是OF不是对有符号运算的标志吗?怎么可以直接根据无符号运算结果得到呢?
举个例子:比如1011和1001相加(由于八位太麻烦了所以马虎一点用4位的),根据老师课上说将其做ADD操作得到的结果是(1)0100,产生了进位所以CF=1,由于两操作数的符号相同但运算结果与操作数不同所以OF=1.
但是如果作为有符号运算的话得到的结果应该是1100,并未产生溢出,OF怎么可以为1呢?是我的理解有错还是怎么的,忘各位大侠赐教.
汇编中OF和CF的问题刚学汇编,看了一眼书.在ADD运算和SUB运算中,得到的结果似乎都是无符号运算的结果,这样的话CF的标志好确定,问题出在OF.我看老师的课件上OF的判断是直接根据运算的结果来
嘿嘿 在计算机中负数用补码表示 如拥4位数 则1011和1001分别表示为-5和-7
加的结果为-12 已经超过了4位数的表示范围 0000~1111 表示的范围是0~7 -1~ -8
所以为益出
你认为的结果应该是1100是不对的 记着负数不是按原码运算的 而是按补码运算的
明白后 就给俺加分吧