监测点11.2,of标志寄存器的问题
检测点11.2写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。 al CF OF SF ZF PFsub al,al 0h/0000 0000b 0 0 0 1 1mov al,10h 10h/0010 0000b 0 0 0 1 1add al,90h a0h/1010 0000b 0 0 1 0 1mov al,80h 80h/1000 0000b 0 0 1 0 1add al,80h 0h/0000 0000b 1 1 0 1 1mov al,0fch 0fch/1111 1100b 1 1 0 1 1add al,05h 1h/0000 0001b 1 0 0 0 0mov al,7dh 7dh/1111 1101b 1 0 0 0 0add al,0bh 88h/1000 1000b 0 1 1 0 1为什么add al,0bh这里的of寄存器是=1呢7d和0b相加应该没有溢出才对啊?
>127......... az4121 发表于 2013-8-15 08:55 static/image/common/back.gif
>127.........
怎么是127,我还是没明白
OF标志寄存器 到底是如何计算溢出的
mov al,7dh 7dh/0111 1101b
add al,0bh 88h/1000 1000b
这个时候为什么of寄存器会溢出呢
d7=01111101b
0b=00001011b
计算结果al=88H=10001000
d7和0b都是无符号数,为什么结果of会溢出呢 小咒 发表于 2013-8-15 12:22
怎么是127,我还是没明白
OF标志寄存器 到底是如何计算溢出的
操作数看做有符号数,两个正数相加结果变成负数了,所以溢出了。 楼主~!这个问题其实是你还没把11章第5节的内容理解。我以前想这个问题想了2天终于想通了,今天就告诉你我的看法吧,是这样的比如说8位的有符号数据,能表示的范围是-128-127,超出这个范围就是溢出了,d7+0b=88h,88h等于十进制的136,136大于127,所以产生了溢出,88h代表了有符号数-120补码. 281595933 发表于 2013-8-15 18:50 static/image/common/back.gif
楼主~!这个问题其实是你还没把11章第5节的内容理解。我以前想这个问题想了2天终于想通了,今天就告诉你 ...
恩,我自己概念混淆了,一直认为最大数是FF,也就是255,没有把-128算进去
正数的最大值是7F,也就是127
页:
[1]