计算机组成原理第六章计算机的运算方法解析
- 格式:ppt
- 大小:7.66 MB
- 文档页数:8
6.1 无符号数和有符号数寄存器的位数反映无符号数的表示范围8 位 0 ~ 255 16 位 0 ~ 65535带符号的数 符号数字化的数+ 0.101101011小数点的位置+ 110001100小数点的位置– 110011100小数点的位置– 0.101111011小数点的位置真值 机器数1. 机器数与真值2. 原码表示法—整数带符号的绝对值表示x 为真值n 为整数的位数如x = +1110[x ]原 = 0 , 1110[x ]原 = 24 + 1110 = 1 , 1110 x =1110[x ]原 = 0,x 2n> x ≥ 02n x 0 ≥ x > 2n用 逗号 将符号位和数值部分隔开x 为真值如x = + 0.1101[x ]原 = 0 . 1101x = – 0.1101[x ]原 = 1 – (–0.1101) = 1 . 1101x 1 > x ≥ 0[x ]原 =1 – x 0 ≥ x >–1x = – 0.1000000[x ]原 = 1 – (– 0.1000000) = 1 . 1000000x = + 0.1000000[x ]原 = 0 . 1000000用 小数点 将符号位和数值部分隔开用 小数点 将符号位和数值部分隔开2. 原码表示法—小数例 6.1 已知 [x ]原 = 1.0011 求 x 解:例 6.2 已知 [x ]原 = 1,1100 求 x 解:x = 1 – [x ]原 = 1 –1.0011 = –0.0011x = 24 – [x ]原 = 10000 – 1,1100 = –1100– –0.0011 1100由定义得由定义得例 6.4 求 x = 0 的原码解:设 x = +0.0000例 6.3 已知 [x ]原 = 0.1101 求 x解:x = + 0.1101同理,对于整数[+ 0]原 = 0,0000[+0.0000]原 = 0.0000x =0.0000[0.0000]原 = 1.0000[ 0]原 = 1,0000∴ [+0]原 ≠ [0]原根据 定义原码的特点:简单、直观但是用原码作加法时,会出现如下问题:能否 只作加法 ?找到一个与负数等价的正数 来代替这个负数就可使 减 加加法 正 正加加法 正 负加法 负 正加法 负 负减减加要求 数1 数2 实际操作 结果符号正可正可负可正可负负无符号数原码表示(整数)机器数与真值原码表示(小数)6.1 无符号数和有符号数。
计算机的运算方式有哪些解析算术逻辑单元(ALU)的功能计算机是一种能够进行高速数据处理和运算的电子设备,而计算机的运算方式是通过算术逻辑单元(ALU)来实现的。
ALU是计算机的核心部件之一,负责进行各种运算操作。
本文将介绍计算机的运算方式以及ALU的功能。
一、计算机的运算方式1. 算术运算算术运算是计算机进行数值计算的基本方式,包括加法、减法、乘法、除法等运算。
计算机通过ALU执行这些运算,将操作数送入ALU,经过运算之后,得到结果并存储到相应的存储器中。
2. 逻辑运算逻辑运算是计算机进行判断和推理的基本方式,常见的逻辑运算有与、或、非、异或等操作。
计算机通过ALU执行这些运算,根据不同的逻辑条件,返回相应的逻辑值,用于控制计算机的运行逻辑。
3. 移位运算移位运算是计算机进行位操作的一种方式,包括逻辑左移、逻辑右移、算术左移、算术右移等操作。
计算机通过ALU执行这些运算,将操作数按指定的位数进行移动,从而实现对二进制数的位操作。
二、ALU的功能1. 算术运算功能ALU的算术运算功能包括加法、减法、乘法和除法等操作。
当计算机需要进行数值计算时,ALU会执行相应的算术运算操作,并将结果返回给计算机的其他部件。
通过ALU的算术运算功能,计算机能够实现各种复杂的数值计算任务。
2. 逻辑运算功能ALU的逻辑运算功能包括与、或、非、异或等逻辑操作。
当计算机需要进行逻辑判断和推理时,ALU会执行相应的逻辑运算操作,并返回逻辑运算的结果。
通过ALU的逻辑运算功能,计算机能够进行复杂的逻辑运算,实现不同的判断和控制逻辑。
3. 移位运算功能ALU的移位运算功能包括逻辑左移、逻辑右移、算术左移、算术右移等操作。
当计算机需要对二进制数进行位操作时,ALU会执行相应的移位运算操作,并将移位后的结果返回给计算机的其他部件。
通过ALU的移位运算功能,计算机能够实现对二进制数的位操作,进行位的插入、删除和移动等操作。
在实际的计算机中,ALU通常由一组逻辑门和寄存器组成,通过控制信号和电路设计,实现各种运算操作。
第六章1.控制器有哪几种控制方式?各有何特点?解:控制器的控制方式可以分为3种:同步控制方式、异步控制方式和联合控制方式。
同步控制方式的各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。
这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。
异步控制方式的各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。
异步控制方式没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。
联合控制方式是同步控制和异步控制相结合的方式。
2.什么是三级时序系统?解:三级时序系统是指机器周期、节拍和工作脉冲。
计算机中每个指令周期划分为若干个机器周期,每个机器周期划分为若干个节拍,每个节拍中设置一个或几个工作脉冲。
3.控制器有哪些基本功能?它可分为哪几类?分类的依据是什么?解:控制器的基本功能有:(1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
(2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
(3)指挥并控制CPU 、主存和输入输出设备之间的数据流动。
控制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型3类,分类的依据在于控制器的核心———微操作信号发生器(控制单元CU)的实现方法不同。
4.中央处理器有哪些功能?它由哪些基本部件所组成?解:从程序运行的角度来看,CPU 的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。
对于冯·诺依曼结构的计算机而言,数据流是根据指令流的操作而形成的,也就是说数据流是由指令流来驱动的。
中央处理器由运算器和控制器组成。
5.中央处理器中有哪几个主要寄存器?试说明它们的结构和功能。
解:CPU 中的寄存器是用来暂时保存运算和控制过程中的中间结果、最终结果及控制、状态信息的,它可分为通用寄存器和专用寄存器两大类。
计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[x+y]补=[x]补+[y]补补码减法:为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补(证明)为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)溢出检测溢出的检测可能产⽣溢出的情况两正数加,变负数,上溢(⼤于机器所能表⽰的最⼤数)两负数加,变正数,下溢(⼩于机器所能表⽰的最⼩数)定点原码乘法定点乘法原理n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,⽽FA只有两个输⼊端,机器⼀次只能进⾏两个数的相加,不能进⾏多个数据的加法。
⼿⼯计算中,乘数的每⼀位是0还是1都可直接看见,⽽在计算机中,采⽤放乘数的寄存器的每⼀位直接决定本次相加数是被乘数还是0是很不⽅便的,若采⽤该寄存器的最低⼀位来执⾏这种判断就简便了。
计算机中执⾏乘法时,积的符号位由被乘数和乘数的符号位通过⼀个半加器(即异或门)实现。
数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移⼀位,得到新的部分积;当Yi为0时,则写下全0。
然后再对乘数Y的⾼⼀位进⾏类似乘法运算。
重复“加—右移”操作N次,可得到最后的乘积。
R0存放部分积,R2存放被乘数,R1存放乘数R0清零,R2存放被乘数,R1存放乘数。
乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出⾄R0的输⼊端。
⼀旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作⽤下右移⼀位,且计数器I记数⼀次;将步骤三重复执⾏N次当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:⼀是符号位需要单独运算,最后给运算结构以正确的符号;⼆是对于采⽤补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不⽅便,⽽且影响速度。
第6章计算机的运算方法一、选择题1.unsigned short x=65530;unsigned int y=x;得到y的机器数为()。
[2012年统考]A.00007FFAHB.0000FFFAHC.FFFF7FFAHD.FFFF FFFAH【答案】B【解析】本题主要考查考生的逆向思维过程。
怎么快速地将65530转换成十六进制,考生应该记住对于16位无符号整数的最大值为65535(216-1),其十六进制为FFFFH,那么就可以很轻松地得到65530的十六进制为FFFAH(F-5=A)。
无符号短整型转换成无符号整型只需在高位补0即可。
所以,最终得到y的机器数为y=0000FFFAH。
2.一条C语言程序在一台32位机器上运行。
程序中定义了3个变量x、y和z,其中x和z是int型,y为short型。
当x=127,y=-9时,执行赋值语句z=x+y后,x、y和z 的值分别是()。
[2009年统考]A.x=0000007FH,y=FFF9H,z=00000076HB.x=0000007FH,y=FFF9H,z=FFFF0076HC.X=0000007FH,y=FFF7H,z=FFFF0076HD.x=0000007FH,y=FFF7H,z=00000076H【答案】D【解析】①在计算机中,机器数默认使用补码表示。
②符号位扩展问题:所有扩展位使用符号位填充,即正数用0填充,负数用l填充。
如1001扩充成8位,可以写成lllll001;0111扩充成8位,可以写成00000111。
③强制类型转换:如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算。
对于x:x为int型,说明x占32位的存储空间。
127换成二进制为00000000000000000000000001111111,对应的十六进制为0000007FH,故X的值为0000007FH。
对于y:y为short型,说明y占16位的存储空间。