计算机组成原理 第六章 计算机的运算方法 Part 3 定点数的四则运算 原码移位运算、加减法 原码乘除法 补码加减法与乘法 |
您所在的位置:网站首页 › SUBB指令的运算规则 › 计算机组成原理 第六章 计算机的运算方法 Part 3 定点数的四则运算 原码移位运算、加减法 原码乘除法 补码加减法与乘法 |
1.移位
15.m = 1500. cm 小数点右移 2 位 机器用语 15 相对于小数点 左移 2 位 算术移位 规则 例 算术移位的硬件实现 算术移位和逻辑移位的区别 算术移位:有符号数的移位 逻辑左移:低位添 0,高位移丢逻辑右移:高位添 0,低位移丢逻辑移位:无符号数的移位循环移位 循环移位:分为带进位(CF)和不带进位的循环移位循环移位特点:移出的数据又被移入到数据中循环移位的应用:特别适合将数据的低字节和高子节数据互换移位规则见图:![]() (1)原码加减 加法:绝对值相加,符号位不变;减法:绝对值大的减绝对值小的数,结果的符号位与绝对值大的数相同。这里的加法运算,其实当两个数符号位不同时就按减法规则算。注意:运算时超出字长,则左边溢出位丢掉。
8位转16位:-12 (10) = 1000 1100 硬件配置改进 一位符号位判溢出 参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出 两位符号位判溢出 结果的双符号位 相同 未溢出 结果的双符号位 不同 溢出最高符号位代表其真正的符号 符号扩展 符号扩展:有时需要把两种不同位数的数相加,那么就需要统一他们的位数,比如8位和16位数相加,要想得到正确的结果,必须把8位数转换成16位数形式。 (1)正数符号扩展 原码=补码=反码:比如8位转16位:+12(10) = 0000 1100 , 转换成16位则为:0000 0000 0000 1100符号位为0,附加为都用0补充(2)负数符号扩展原码:扩展方法与正数符号扩展相同,只不过最高位符号位变为1, 1000 0000 0000 1100补码:附加位补充1,符号位为1,1111 1111 1111 1100反码:附加位补充1,符号位为1,1111 1111 1111 1100乘法运算可用加和移位实现n = 4, 加 4 次,移 4 次由乘数的末位决定被乘数是否与原部分积相加,然后 1 位形成新的部分积,同时 乘数 1 位(末位移丢),空出高位存放部分积的低位。被乘数只与部分积的高位相加硬件:3 个寄存器,其中2个具有移位功能;1 个全加器 原码一位乘法运算细则: 被乘数和乘数均取绝对值参加运算,符号位异或运算;部分积的长度和被乘数一样,取n+1位,初值为0;从乘数的最低位yn开始判断;若yn=1,则高位部分积加上被乘数|x| , 高位部分积然后右移一位;若yn=0,则高位部分积加上0,高位部分积右移一位;重复2步骤,判断n次例 硬件 ![]() Booth算法
例
硬件
总结
笔算除法 笔算除法和机器除法的比较
原码除法 恢复余数法 符号位与数值位一起参加运算除法第一步根据被除数和除数的符号决定是做加法还是减法上商的原则根据余数和除数的符号位共同决定,同号上1,异号上0,简单规律就是,够减上1,不够减上0最后一步商恒置为‘1’运算规则: 符号位参与运算,除数、被除数、商和余数都用补码表示被除数和除数同号,则被除数减去除数;若被除数和除数异号,则被除数加上除数若余数和除数同号,则上商1,余数左移一位; 若余数和除数异号,则上商0,余数左移一位加上除数重复执行上一步骤n次若对商的精度无特殊要求,最后一位商恒置为1例
例 硬件实现 总结
左规 右规 在 对阶 和 右规 过程中,可能出现尾数末位丢失引起误差,需考虑舍入 0 舍 1 入法恒置 “1” 法 5. 溢出判断 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |