欢迎到我个人博客查看本篇 https://sunmengxin.cn/CSCC/06-operational-method/

思维导图:

课程进度:

一、无符号数和有符号数

1.无符号数

寄存器位数反映无符号数的表示范围

8位——0~255
16位——0~65535

2.有符号数

机器数与真值

原码表示法

  • 整数
  • 小数
  • 原码简单直观

补码表示法

  • (1) 补的概念

    1. 补码的提出:解决原码的加减符号不同意问题(用加法代替减法)
    2. 时钟:6点 -3 可用 + 9 代替-都变成3点,称 + 9 是 3 以 12 为模的补数(mod 12)
    3. 结论:
      一个负数加上 “模” 即得该负数的补数
      一个正数和一个负数互为补数时它们绝对值之和即为模数
  • (2) 正数的补数即为其本身

  • (3) 补码定义

  • (4) 求补码的快捷方式

    当真值为负时,补码 可用 原码除符号位外每位取反,末位加 1 求得

反码表示法

  • 除符号位每位取反

  • 比较

移码表示法

  • 定义

  • 移码和补码的比较:补码与移码只差一个符号位

  • 真值、补码和移码的对照

  • 移码的特点

    最小真值的移码为全 0

    用移码表示浮点数的阶码能方便地判断浮点数的阶码大小

二、数的定点表示和浮点表示

1.定点表示

小数点固定在某一位置为定点数
在定点机中,小数位置固定,当处理数不是纯小数或纯整数时,必须乘上一个比例因子,否则会“溢出”

2.浮点表示

起因

  • 编程困难,程序员要调节小数点的位置
  • 数的表示范围小,为了能表示两个大小相差很大的数据,需要很长的机器字长;
  • 数据存储单元的利用率往往很低

浮点

S:小数,可正可负
j:整数,可正可负

浮点形式

范围

浮点数规格化

1.基数不同,浮点数规格化形式不同:
r = 2 尾数最高位为 1
r = 4 尾数最高 2 位不全为 0
r = 8 尾数最高 3 位不全为 0

2.基数 r 越大,可表示的浮点数的范围越大,浮点数的精度降低:
r = 2 左规 尾数左移 1 位,阶码减 1
右规 尾数右移 1 位,阶码加 1
r = 4 左规 尾数左移 2 位,阶码减 1
右规 尾数右移 2 位,阶码加 1
r = 8 左规 尾数左移 3 位,阶码减 1
右规 尾数右移 3 位,阶码加 1

机器零

  • 当浮点数尾数为 0 时,不论其阶码为何值按机器零处理
  • 当浮点数阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理

3.定点数和浮点数比较

4.举例

5.IEEE 754标准

标准

举例

三、定点运算

1.移位运算

移位的意义

15.m = 1500. cm
小数点右移 2 位
机器用语 15 相对于小数点 左移 2 位

算术移位

  • 规则

  • 举例

算术移位的硬件实现

算术移位和逻辑移位的区别

  • 算术移位:有符号数的移位
    • 逻辑左移:低位添 0,高位移丢
    • 逻辑右移:高位添 0,低位移丢
  • 逻辑移位:无符号数的移位

2.加法与减法运算

补码加减法运算的公式

  • 加法

  • 减法

举例

溢出的判断

  • 一位符号位判溢出

    参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出

  • 两位符号位判溢出

    结果的双符号位 相同 未溢出
    结果的双符号位 不同 溢出
    最高符号位代表其真正的符号

补码加减法的硬件配置

3.乘法运算

分析笔算乘法

笔算乘法改进

改进后的笔算乘法过程(竖式)

小结

  • 乘法运算可用加和移位实现n = 4, 加 4 次,移 4 次
  • 由乘数的末位决定被乘数是否与原部分积相加,然后 1 位形成新的部分积,同时 乘数 1 位(末位移丢),空出高位存放部分积的低位。
  • 被乘数只与部分积的高位相加
  • 硬件:3 个寄存器,其中2个具有移位功能;1 个全加器

原码一位乘

  • 举例

  • 硬件

补码一位乘

Booth算法

  • 递推公式

  • 举例

  • 硬件

4.除法运算

分析笔算除法

笔算除法和机器除法的比较

原码除法

  • (1) 恢复余数法

  • (2) 不恢复余数法(加减交替法)

  • (3) 原码加减交替除法硬件配置

四、浮点四则运算

1. 对阶(小介看大介)

2.尾数求和

3. 规格化

左规

右规

4. 舍入

在 对阶 和 右规 过程中,可能出现尾数末位丢失引起误差,需考虑舍入

  • 0 舍 1 入法
  • 恒置 “1” 法

5. 溢出判断

五、算术逻辑单元

1.ALU电路

2.快速进位链

  • 1.串行进位链
  • 2.并行进位链(先行进位,跳跃进位)

注:本篇除思维导图,其它图片均来自PPT课件和唐朔飞的《计算机组成原理》


👇您的赏识是我前进的动力!٩(๑•̀ω•́๑)۶😜

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐