编程爱好者 发表于 2013-8-25 14:09:28

求版主帮忙,谢谢!

版主你好!请教几个问题,关于sf标志的有符号和无符号运算,还有补码的知识,越详细越好,对补码和符号运算很模糊,谢谢!

福禄娃娃 发表于 2013-8-25 21:35:55

你好,在内存中数据和代码都是二进制方式存储的,而数据为了便于进行计算都以补码的形式存放。
其实补码的设计是为了CPU能进行快速的指令处理而发明的,这样CPU的设计就简单了很多,很多加法器合在一起就行了,由于补码的存在减法也可以变成加法,乘法也可以变成加法。
补码最高位是符号位,机器字长为n   表达数的范围为 -2^(n-1) <= N <= +2^(n-1) -1
负数比正数多一个 -128补码为1000 0000   0的补码无论是+0还是-0都是0000 0000   -127的补码为0111 1111
所以 -128 ~ 1271000 0000 ~ 0111 1111   80H~7FH

SF(sign flag):符号标志位

当运算结果的最高位为1时SF=1,否则SF=0。

怡静 发表于 2013-8-29 03:20:32

福禄娃娃 发表于 2013-8-25 21:35 static/image/common/back.gif
你好,在内存中数据和代码都是二进制方式存储的,而数据为了便于进行计算都以补码的形式存放。
其实补码的 ...


感谢楼主无私奉献!
页: [1]
查看完整版本: 求版主帮忙,谢谢!