运算电路基础

一、n位整数加减运算器

利用带标志加法器,可构造整数加/减运算器,进行运算:

        无符号整数加。无符号整数减

        带符号整数加、带符号整数减

(当Sub为1时,做减法。当Sub为0时,做加法)

 

在整数加/减运算部件基础上,加上寄存器、移位器以及控制逻辑,就可实现ALU、乘/除运算以及浮点运算

二、ALU(算术逻辑部件) 进行基本算术运算与逻辑运算

无符号整数加减

有符号整数加减

与或非异或等运算

(注意没有乘除)

 操作控制端(ALUop),用来决定所执行的处理功能

三、从C表达式到逻辑电路

通过指令作为媒介

注:关系运算符实际在底层是做减法来比较大小的

计算机如何实现高级语言程序中的运算?

–将各类表达式编译(转换)为指令序列

例如:y=(x>>2)+k 转换为以下指令序列:

sarw $2, %ax; x>>2

addw %bx, %ax; (x>>2) + k

–计算机直接执行指令来完成运算

控制器对指令进行译码,产生控制信号送运算电路

–操作数在运算电路中运算

sarw $2, %ax:将操作数“2”和“R[ax]”送移位器运算

addw %bx, %ax:将R[ax]和R[bx]送整数加减器中运算

移位器和整数加减运算器都是由逻辑门电路构成的

四、C语言的运算

包括:算术运算、按位运算、移位运算、逻辑运算、位扩展位截断

按位运算

用途:•对位串实现“掩码”(mask)操作或相应的其他处理

(主要用于对多媒体数据或状态/控制信息进行处理)

位扩展和位截断运算:

用途:类型转换时可能需要数据扩展或截 断

没有专门操作运算符,根据类型转换前、后数据长短确定是扩展还是截断

扩展:短转长无符号数:0扩展(前面补0)带符号整数:符号扩展(前面补符)

截断:长转短强行将高位丢弃,故可能发生“溢出”


参考:南京大学计算机系统基础(一)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值