运算方法和运算部件

一.高级语言和机器指令中的运算

1.C程序中涉及的运算

涉及的运算有按位运算逻辑运算移位运算位扩展和位截断运算

  • 移位运算
    负数反码,移位后符号位不变,左移时,最高位丢失0,则结果出错;右移时,最低位丢失0,影响精度。
    负数补码,移位后符号位不变,左移时,最高位丢失0,则结果出错;右移时,最低位丢失1,影响精度。
  • 位扩展
    进行位扩展时,扩展后的数值应保持不变。
    扩展方式有:0扩展和符号扩展。0扩展用于无符号数,只要在短的无符号数前面添加足够的0即可。符号扩展用于补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展。

2.MIPS指令中涉及的运算

MIPS指令系统涉及的运算有按位逻辑运算、逻辑移位、算术移位、带符号整数的加减乘除、无符号整数加减乘除、带符号整数的符号扩展、无符号数的0扩展
、单精度浮点数加减乘除、双精度浮点数加减乘除等。

2.基本运算部件

1,串行进位加法器

  • 串行进方式:n位加法器,X与Y逐位相加,位间进位串行传送。
  • 只有一个全加器,数据逐位串行送入加法器中进行运算。进位触发器用来寄存进位信号,以便参与下一次运算。
  • 行进位加法器速度慢的主要原因是进位按串行方式传递,高位进位依赖低位进位。
    2,并行进位加法器
    用n位全加器实现两个n位操作数各位同时相加,这种加法器称为并行加法器。并行加法器中全加器的个数与操作数的位数相同。并行加法器中全加器的位数与操作数的位数相同,可同时对操作数的各位相加。计算机内部大多采用两级或多级先行进位加法器
    3,带标志加法器

3.定点数运算

1,补码加减法

  • 运算表达式
  • 判断是否溢出
    2,原码加减运算
    比较两个操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差求和时,数值位相加,若最高位产生进位则结果溢出求差时,被加数数值位加上加数数值位的补码
    3,移码加减运算
    移码的和、差等于和、差的补码。
    4,原码乘法运算
    原码一位乘法
    (1)确定乘积的符号位。由两个乘数的符号异或得到。
    (2)计算乘积的数值位,乘积的数值部分分为两个乘数的数值部分之积。
    原码二位乘法
    原码两位乘是用两位来决定新的部分积的形成,形成4种状态
posted @ 2020-10-07 21:38  orange_toffee  阅读(175)  评论(0编辑  收藏  举报