32定点加减运算 溢出的处理 >由ALU中的硬件进行溢出检测 产生一个异常(中断) 将产生溢出的指令地址保存到异常程序计数器 (EPC)中 跳到一个预先设定好的地址去执行相应的异常处 理程序
3.2 定点加减运算 ◼ 溢出的处理 ➢ 由 ALU中的硬件进行溢出检测 ➢ 产生一个异常(中断) ➢ 将产生溢出的指令地址保存到异常程序计数器 (EPC)中 ➢ 跳到一个预先设定好的地址去执行相应的异常处 理程序
32定点加减运算 溢出异常的产生 >有符号算术运算指令溢出时会产生异常 加法(add)、立即数加法(add)、减法 (sub) 无符号算术运算指令溢出时不会产生异常 无符号加法(addu)、立即数无符号加法 ( addie)、无符号减法(subu)
3.2 定点加减运算 ◼ 溢出异常的产生 ➢ 有符号算术运算指令溢出时会产生异常 加法(add)、立即数加法(addi)、减法 (sub) ➢ 无符号算术运算指令溢出时不会产生异常 无符号加法(addu)、立即数无符号加法 (addiu)、无符号减法(subu)
32定点加减运算 MIPs中只有整字的整数运算操作指令, 但是具有字节和半字的数据传送指令 nbu:取无符号字节 a将一个字节装入寄存器的最低8位 寄存器空余位由0填满 alb:取字节(有符号) n将一个字节装入寄存器的最低8位 寄存器空余24位由符号位扩展填满
3.2 定点加减运算 ◼ MIPS中只有整字的整数运算操作指令, 但是具有字节和半字的数据传送指令 ◼ lbu: 取无符号字节 ◼ 将一个字节装入寄存器的最低8位 ◼ 寄存器空余位由‘0’填满 ◼ lb: 取字节(有符号) ◼ 将一个字节装入寄存器的最低8位 ◼ 寄存器空余24位由符号位扩展填满
33算术逻辑运算部件 算术运算和逻辑运算都可以用一个算术 逻辑运算部件ALU( Arithmetic Logic Unit)实现。 可使用相关逻辑器件(如与门、或门、反 向器和多路选择器)来构造一个ALU
3.3 算术逻辑运算部件 ◼ 算术运算和逻辑运算都可以用一个算术、 逻辑运算部件ALU(Arithmetic Logic Unit)实现。 ◼ 可使用相关逻辑器件(如与门、或门、反 向器和多路选择器)来构造一个ALU
33算术逻辑运算部件 位加法器(全加器) 1加法器的输入和输出 (本位进位) (本位和) 个输入为1时, Co Sum为1,Co为0; um 两个输入为1时, 位加法器 Sum为0,Co为1; 三个输入为1时, Sum为1,Co为1 (本位操作数) (低位进位)
3.3 算术逻辑运算部件 一 .一位加法器(全加器) 1.加法器的输入和输出 一位加法器 a b CI Co Sum (本位进位) (本位和) (本位操作数) (低位进位) 一个输入为1时, Sum为1,Co为0; 两个输入为1时, Sum为0,Co为1; 三个输入为1时, Sum为1,Co为1