|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
看图
这为什么说“CPU在执行add等指令时,是必然要影响到SF标志位的值的”?一定会影响吗?
如果是这样:
mov al,00000001B
add al,00000001B
复制代码
我把它们都看成是无符号的,那么相加后的值是一个正数,所以SF标志位的值为1
再如果:
mov al,00000002B
add al,00000002B
复制代码
都看成无符号的,相加后的值是正数,SF标志位的值还是1,没有改变啊,为什么说影响到了SF的值?
还有图里我标出来的“表示”是什么意思?
还有,把10000001B看成无符号数进行运算,就是我们平常用汇编进行的运算,比如:
mov ax,10000001B ;ax=129
mov bx,10000011B ;bx=131
add bx,ax ;bx=260
如果我们要把10000001B看成有符号数进行运算,把10000011B看成无符号的呢?那么
mov ax,10000001B ;ax=-1
mov bx,10000011B ;bx=131
add bx,ax ;bx=130
执行后
bx=10000100B=130,难道10000100B=130吗?
如果我把10000001B看成有符号数,把10000011B也看成有符号数,那么
mov ax,10000001B ;ax=-1
mov bx,10000011B ;bx=-3
add bx,ax ;bx=-4
执行后
bx=10000100B=-4,10000100B还可以于-4吗???
我始终搞不明白这个补码,我知道算出补码,但我不知道用补码进行运算,因为一般说了补码,就有负数,真的搞不懂
还有图里那个“表示”是什么意思??? |
|