计算机组成原理复习---第4章 运算方法与运算器(待完善)

本文介绍了计算机系统中移位运算的基本概念及其分类,包括逻辑移位、算术移位和循环移位,并详细阐述了不同移位方式的特点及其实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 计算机系统的运算器的功能:加、减、乘、除;与、或、非等算术及逻辑运算

详见教材P104

  • 运算的实现方法:补码的加减运算及溢出判别

详见教材P110

  • 机器数的移位运算

在计算机运算中,经常用到移位运算。对于十进制数据,当小数点向左移一位,表明数据缩小了10倍,相当于除以10;当小数点向右移一位,表明数据放大了 10 倍,相当于乘以10。在计算机中,由于数据以二进制形式表示,且小数点位置固定,因此,二进制数据只能相对于小数点进行左移或者右移。二进制数据每相对于小数点左移一位,相当于乘以2,数据放大了2倍;每相对于小数点右移一位,相当于除以 2,数据缩小了2倍。

移位运算对于计算机具有很高的实用价值。首先,采用移位指令对数据进行放大或者缩小2^{n}倍,比采用乘除法指令进行乘以或除以2^{n},在速度上要快得多。其次,当计算机中没有乘除运算器时,可以采用移位器和加减法器,利用乘除串行运算方法的原理来实现乘除运算器。另外,即使计算机指令系统中没有乘除运算指令,也可以利用移位指令和加减法指令来编制一个子程序,实现乘除运算功能。

计算机的移位运算分为逻辑移位、算术移位、循环移位 3 种。它们的主要区别在于符号位和移出的数据位的处理方法不同。与手工的移位运算不同,计算机的移位寄存器的字长是固定的,当进行左移和右移时,寄存器的最低位和最高位会出现空余位,最高位和最低位相应地也会被移出,那么,对空余位补充 “0” 还是 “1” 呢?移出的数据位如何处理呢?这与移位的种类和机器数的编码方法有关。

1.逻辑移位

对于逻辑移位,将移位的数据视为无符号数据,移位的结果只是数据各位在位置上发生了变化,无符号数据的数值(无正负)放大或缩小。逻辑左移时,高位移出,低位补“0”。逻辑右移时,低位移出,高位补 “0” 。移出的数据位一般置入标志位 CF(进位/借位标志)。

2.算术移位
算术移位的移位对象是带符号数据,即各种编码表示的机器数。算术移位的结果,在数值的绝对值上进行放大或缩小,同时,符号位必须要保持不变。

对于原码的算术左移,符号位不变,高位移出,低位补“0”。当左移移出的数据位为“1"时,发生溢出。算术右移时,符号位不变,低位移出,高位补“0”。

对于补码的算术左移,符号位不变,高位移出,低位补“0”。当左移移出的数据位正数为“1”、负数为“0”时,发生溢出。因此,为保证补码算术左移时不发生溢,移位的数据最高有效位必须与符号位相同。所以,在硬件实现补码的算术左移时,直接将数据的最高有效位移入符号位,不会改变机器数的符号(当不发生溢出时)。算术右移时,符号位不变,低位移出,高位正数补“0”,负数补“1”,即高位补符号位。补码的移位规则如图 4.2 所示。

 计算机的算术移位指令大多都采用补码的移位规则,即移位的对象为补码机器数。

反码的算术移位规则是:算术左移时,最高有效位移入符号位,低位正数补“0”,负数补“1”;算术右移时,符号位不变,高位补符号位,低位移出。

3.循环移位
循环移位,顾名思义,就是指所有的数据位在自身范围内进行左移或者右移,左移时最高位移人最低位,右移时最低位移人最高位。若与 CF标志位一起循环,称为大循环,否则,称为小循环。

  • 浮点数:数值与IEEE754浮点格式表达的相互转换

  • 浮点数加减运算的步骤

  • 浮点加减运算器的结构框架


以上复习资料均由作者本人根据所学计算机组成原理课程大纲,参考包健《计算机组成原理与系统结构》和《2022年计算机组成原理考研复习指导》整理而成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋洋得意呀

您的鼓励是我最大的动力,谢谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值