- 13
- 0
- 约3.53千字
- 约 7页
- 2016-10-09 发布于江西
- 举报
NZCV的补充new.doc
由如何判断操作数是有符号数还是无符号数引发的思考
???? 刚学汇编啊,不知道大家有没有和我一样的问题,FFH(1111?1111)到底是表示无符号数255,还是表示有符号数-1呢?上次在汇编语言语言上机 实验时想观察溢出标志状态位,于是乎,我理所当然的求FF+FF,满心想着最大的(8位)两个数相加肯定得溢出,但是得到的结果居然nv没有溢出,cy进 位,惑。
下文是在老师的讲解和查阅一些资料后的思考,还望大家共同学习,批评指正(重点部分背景设成黄色了)。
(1)为什么存在无符号数这种奇葩
(2)计算机如何区分无符号数和无符号数(区分BCD和二进制)
(3)Booth算法不需特殊计算符号位,为什么乘法指令要区分有无符号
为什么存在无符号数
?? 生活中我们所接触到的数,几乎都是有符号数。为什么存在无符号数这种奇葩呢,如你所知,计算机都处理的信息是以0、1二进制来存储的,无法存储‘+’号 ‘-’号。所以有符号数的最高位会用来表示正负(0正数?1负数)牺牲掉1位,而无符号数所有位都来表示数值,这样同样的存储位数中,无符号数能表示正数 的范围是有符号数的两倍。
计算机如何区分无符号数和无符号数
?? 答:计算机做加法时不区是分无符号数还是有符号数。
?? 正如文章开始提到的问题,FF+FF我们的本意是255+255=510??2?^8-1产生溢出,但为何OF的值并没有发生改变呢??
原创力文档

文档评论(0)