计算机组成原理逻辑电路,计算机组成原理学习(四)算数逻辑电路,各类运算...

本文介绍了逻辑门的基本操作,包括与、或、非、异或,并通过掩码展示了如何进行位操作,如反转、复位和置位。此外,讲解了n位加法器的工作原理和溢出条件,以及移位运算在无符号和有符号数中的差异。位拓展和位截断在数据转换中的应用也被提及,最后讨论了ALU在计算机运算中的核心作用。
摘要由CSDN通过智能技术生成

这一部分是比较好理解的,上学时都了解过。

1.与、或、非、异或门

基本的逻辑运算没什么好记录的,注意符号长啥样。

异或门可以理解为输入的两个值相同则输出0,不同则输出1。

2.四个应用

(1)求反

非运算可以对某个特定位,或者全部反转。

(2)使特定的位复位

这里涉及到一个“掩码”的概念,就是1串01序列,和输入数据按位做与运算,因为与运算的特性,会将特定位复位(置为0)。

如对 1010 0110,使用掩码 0000 0111,则输出的结果是0000 0110。掩码中为0的部分会被复位,1的部分不变。

(3)对特定的位置位

和上面类似,是或运算的应用,掩码中为1的部分会被置位(设为1),0的部分不变。

如对 1010 0110,使用掩码 1111 1000,则输出的结果是1111 1110。

(4)使特定的位反转

异或运算的应用,掩码中为1的部分都会取反。

如对 1010 0110,使用掩码 1111 1000,输出的结果是0101 1110。

3.n位加法器

用基本逻辑部件构成加法器,A和B是输入的两个数,F是本位的计算结果,Cout是向高位的进位。串联在一起就构成n位加法器。

c0c36de4a8bd52f27a6ebf6c4a691614.png

n位加法器可以输出标志信息。

如果要求做减法,减法就是A加上B的补码。求B的补码等于对B取反再加1,这些都可以用逻辑门电路实现。

和加法整合在一起,可以用一个控制信号Sub来决定是做加法还是减法。从图中可以看到Sub相当于求补码时取反后要加上的1。

36dbcb385bc292e8acd265bb66d0b652.png

4.移位运算

逻辑移位,左移高位会被丢弃,低位自动补0;右移低位会被丢弃,高位自动补0。

循环移位,不管是左移还是右移都不会丢弃,而是补上尾巴的部分,相当于数据在旋转。如左移一位,最低位就会补上原来的最高位。

算数移位,区分无符号和带符号的数。对于无符号型值,算术移位等同于逻辑移位。而对于有符号型值 ,算术左移等同于逻辑左移,算术右移补的是符号位,正数补0,负数补1。

按位与运算,移位运算都用来提取数据(提取的数据不变,其它为0)。

自己换算一下,算数移位其实也可以用来在不改变符号的情况下,做倍数运算。因为差1位相差的就是2的倍数,右移一位正好就是缩小为1/2,左移就是放大到2倍。

何时会发生溢出?

无符号数使用逻辑移位,左移时如果移出了1,就会发生溢出。(相当于扩大两倍,然后因为受限于位数导致反而变小)

带符号数使用算数移位,和逻辑移位类似,高位移出时就可能溢出。移出去的符号位和新的顶上去的符号位不一致(比如原来1是负的,顶上去的是0,负数变成了正数),就发生了溢出。

5.位拓展,位截断运算

位拓展用于长度短的数据类型拓展到长的数据类型,比如short转int。无符号的会在前面补0,带符号的前面会补符号。

位截断用于长转短,因为将高位丢弃了,所以可能发生“溢出”。

课里给出的例子。

7b7192a913977ba41ccd8099d0d2426b.png

例子2。注意把 i 强转成short时,符号位就给丢掉了,变成负数。位拓展时补上符号位,值没有变化。

6ca7eb34e8bd54ec6e40d628282cbc81.png

6.ALU构成

n位带标志的加法器是ALU的核心,ALU加上其它部件以后可以进行所有基本的算数运算和逻辑运算。控制信号决定做什么运算,来自控制器。

05393850e840d16d3adb3c5782b04429.png

7.源码到电路的过程

0afdab597c67aaf80ef7263fb983ed48.png

原文:https://www.cnblogs.com/banmei-brandy/p/12310905.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值