2进制运算,判判断标志位怎么变
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/08/29 00:16:12
2进制运算,判判断标志位怎么变
完成下列十六进制数的运算,并给出个标志位!9090H-4AE0H=?
完成下列十六进制数的运算,并给出个标志位!9090H-4AE0H=?
9090H-4AE0H=45B0H
SF=0 CF=0 ZF=0 OF=1
再问: 为什么OF=1还有AF=0,OF和AF究竟是怎么判别的?这两个我一直搞不懂,高手能说详细一点吗45B0不是等于0100 0101 1011 0000吗,哪里溢出了?
再答: 我没有写AF呀。 溢出标志用于带符号数的运算,就是把参与运算的数看成是带符号数,9090H-4AE0H中,9090H是负数,4AE0H是正数,负数减正数相当于负数加负数,结果应该是负数(这个规则和十进制数是一样的),但是这个运算结果45B0H是正数,就是负数加负数结果为正数,这个结果不符合规则,就说明在运算过程中有溢出了。 同样的道理,以后看到两正数相加,结果为负数,也可以判断溢出。
SF=0 CF=0 ZF=0 OF=1
再问: 为什么OF=1还有AF=0,OF和AF究竟是怎么判别的?这两个我一直搞不懂,高手能说详细一点吗45B0不是等于0100 0101 1011 0000吗,哪里溢出了?
再答: 我没有写AF呀。 溢出标志用于带符号数的运算,就是把参与运算的数看成是带符号数,9090H-4AE0H中,9090H是负数,4AE0H是正数,负数减正数相当于负数加负数,结果应该是负数(这个规则和十进制数是一样的),但是这个运算结果45B0H是正数,就是负数加负数结果为正数,这个结果不符合规则,就说明在运算过程中有溢出了。 同样的道理,以后看到两正数相加,结果为负数,也可以判断溢出。