文档详情

[工学]2009汇编语言程序设计.ppt

发布:2018-03-05约9.89千字共102页下载文档
文本预览下载声明
什么是进位记数制? 基数:在进位记数制中,一种记数制允许选用基本数字符号的个数叫做基数。 系数:在任意数位上出现的基本数字符号。 位权:在一个数中,系数在不同数位代表的值不同,如果基数为R,则第n位的位权为Rn, 每个系数表示的数值等于它本身乘以位权。 补码运算规律的优势 补码减法不需要判断被减数与减数的大小关系 - 如果解释为无符号数,实际完成的运算为256+1-2=255 如果解释为补码,则为1-2 = -1 “数的运算”与“编码解释”结合 运算规则不随编码解释而改变 + 1 无符号数编码解释: 2+255 = 257 补码解释: 2+(-1) = 1 原码 要求ALU中不但提供加法器,而且要提供减法器,计算机的硬件逻辑因此变得更复杂。 如果是减法,则需要区分减数和被减数。 专门针对原码设计的加法器和减法器称为原码加法器和原码减法器。 原码 原码运算的实质: (1)符号与数值是分离的,符号判断与数值运算分别进行。 (2)在对其数值部分实施运算时,实质上是无符号数运算。 补码 原码解决了正负数在机器内的表达问题,但是硬件操作并不方便,而且会使硬件逻辑变得相对复杂。 为了解决这些问题,计算机设计者使用了二进制数的另一种编码表示,补码。 补码 补码的含义是指正数和负数的编码是互补的形式。 如果两个数的值相等,而符号相反,那么使用它们的补码直接相加就会等于0的补码,形成一种编码耦合。 补码 补码的统一定义: [X]补 = 2n+X (补码存在字长限制,n表示字长) 正数和零的补码(字节) [+59]补 = 28+= 100000000 += 1(舍去) (8位以内的部分为补码) M只是在第8位上为1(从第0位开始计位编号),因为字节长度限制,相加结果仍等于正数真值。 结论:正数或0的补码就是它的真值本身。 负数的补码 [-59]补 = 28+(= 100000000 -= 可以看到,负数的补码已与真值完全不一样,但是却实现了编码耦合: [+59]补+[-59]补 =11000101 = 100000000 = 28 由真值求相应的补码 例1.18 设A=+65,B=-65,则用8位二进制数表示的补码为: [A]补 [B]补=2n+B=256+(-65) =100000000 练习: [A]补+ [B]补=? 补码的基本运算规律 补码基本运算规律:[+X]补+[-X]补 = 2n 加上字长限制:[+X]补+[-X]补 = [0]补 由已知补码求真值 如果把补码变回二进制数真值,则先判断符号位。 如果是正数,那么补码本身就是真值。 如果为负数,就用2n减去补码,也就是求负数补码的逆过程。 已知负数补码求真值 [X]补 = 2n+X -X= 2n- [X]补 注:所求结果只包括数值部分,需添加负号才能形成完整真值。 由已知补码求真值 例7.分别求已知补11010011的真值。 为正数,补码等于真值为负数, 100000000= 真值为 –快速求负数补码的方法 正数补码就是它的真值本身。 负数补码则是把数值先变反,再加1,就得到补码。 快速求负数补码的方法 例8.使用变反加1的方法求负数补码 真值:- 相反数变反: 加 1: 快速求负数补码的方法 验算10100111 = 0(舍去第8位) 验算过程解释正数补码)+值变反的结果)+1 =1 去掉超出字节范围的第8位以后,结果一定为0的补码。 变反加1的实质 一个M位的二进制形式(数或编码)A,将其变反加1后得到的结果为耦合的二进制形式A’,满足A+A’=2M。 可推论:A’变反加1应得到A。 去掉负号的负数真值与负数补码是相互耦合的二进制形式。 快速由负数补码求真值的方法 变反加1的方法可以由负数真值计算补码;这个方法同样
显示全部
相似文档