计算机组成原理习题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 当被乘数x符号任意,乘数y为负,都以补码表示。 [x]补 = x0. x1x2 …… xn [y] 补 = y0.y1y2 …… yn = 1. y1y2 …… yn = 2 + y (mod)2 y = [y]补 – 2 =1. y1y2 …… yn – 2 =0. y1y2 …… yn – 1 所以 xy = x(0. y1y2 …… yn– 1) = x(0. y1y2 …… yn) – x [x×y]补 = [x (0. y1y2 …… yn)]补 + [-x]补 因为 (0. y1y2 …… yn) > 0,根据式(1) [x(0. y1y2 …… yn)]补 = [x]补×[y]补 = [x]补×(0. y1y2 …… yn) 即 [x×y]补 = [x]补×(0. y1y2 …… yn) + [-x]补 (2) (3)被乘数x与乘数y的符号任意,以补码表示。 只要将式(1)与式(2)综合起来便得到补码乘法的统一算式如下: [x×y] 补 = [x]补(0. y1y2 …… yn)- [x]补×y0 = [x]补×[0. y1y2 …… yn –y0] =[x]补×[-y0 + y1×2-1+y2×2-2+……+yn×2-n]=[x]补.y
若浮点数x的二进制存储格式为 (41360000)16,求此IEEE754格式32位浮点 数的十进制值。 将十进制数20.59375转换成32位IEEE754格 式浮点数的二进制格式来存储。 已知[x]补=1.x1x2„xn(0≥x>-1),求证 x=-(0.x1x2„xn+0.00„01) 已知[x]补 = x0.x1x2…xn 求证 [1-x]补 = x0.x1x2…xn + 2-n 设x=2010×0.11011011,y=2100×(0.10101100),求x+y。
CPU的地址总线16根(A15~A0,A0为低位),双向数据总线8 根(D7~D0),控制总线中与主存有关的信号有MREQ(允许 访存,低电平有效),R/W(高电平读命令,低电平写命令)。 主存地址空间分配如下:0—8191为系统程序区,由只读 存储器芯片组成;8192-32767为用户程序区;最后(最 大地址)4K地址空间为系统程序工作区。上述地址为十 进制,按字节编址。现有如下芯片: EPROM : 8K×8位(控制端仅有CS) SRAM :16K×1位,2K×8位, 4K×8位, 8K×8位 请从上述芯片中选择芯片设计该计算机的主存储器,画出 主存储器逻辑框图,注意画选片逻辑(可选用门电路及 3:8译码器)与CPU的连接。
第二部分:数据的表示和运算
求证:-[y]补 = [-y]补 证明: 因为[x+y]补=[x]补+[y]补 设x=-y, 代入上式,有 [0]补 =[-y]补+[y]补 即[-y]补+[y]补=0 因此 -[y]补=[-y]补
第二部分:数据的表示和运算
设[x]补 = x0.x1x2…xn , [y]补 = y0.y1y2…yn , 证明:[x×y]补 = [x]补×(-y0 + y1×2-1+y2×2-2+……+yn×2-n)。 证明: (1)当被乘数x的符号任意,用补码表示,乘数y为正。设 [x]补=x0. x1x2 …… xn [y]补=0. y1y2 …… yn 因为 [x]补=2n+1 + x ( mod2 ) [y]补=y 所以[x] 补 ×[y] 补 =(2n+1 +x)×y = 2n+1y +x×y= 2(y1y2 …… yn) +x×y 因为 (y1y2 …… yn) 是大于0的正整数,根据模运算的性质有: 2 (y1y2 …… yn) = 2 (mod2) 所以 [x]补×[y]补 = 2 + x×y =[x×y]补(mod2) 即 [x×y]补=[x]补×[y]补 =[x]补×(0. y1y2 …… yn) = [x]补×y (1)
第二部分:数据的表示和运算
设X为负小数,1位符号位,n位数值位,求证[x]补=[x]反+2-n
思路:本题要求证明补码与其反码的对应关系,因此可采用补码和反码 的数学定义来证明。 证明: [x]补=2+x [x]反=(2-2-n)+x=2+x-2-n=[x]补-2-n 因此[x]补=[x]反+2-n
第二部分:数据的表示和运算
证明类题目的解题思路 对于证明题,证明的方法一般可采用:(1)利用原码、补码、反 码的数学定义(2)利用补码加减法运算规则(3)利用补码与真值 的转换关系等。 对于不知正负数的场合,可采用归纳法分别证明
已知[x]补=1.x1x2„xn(0≥x>-1),求证 x=-(0.x1x2„xn+0.00„01)
第二部分:数据的表示和运算
设[x]补=x0.x1x2…xn,求证[x/2]补=x0.x0x1x2…xn
思路:对于要求证明补码与1/2、1/4倍或2、4倍数的补码的对应 关系,最好采用补码和真值的转换关系来证明。
证明: 根据补码与真值的关系
n
x=-x0+∑xi2-i
i=1
x/2=-x0/2+(1/2) ∑xi2-i=-x0+x0/2+ ∑xi2-(i+1)=-x0+ ∑xi2-(i+1)
n-1个0
思路:本题要求证明补码与其真值的对应关系,因此可采用补码的数学 定义来证明。
证明: [x]补=2+x x=[x]补-2 =[x]补-(1.111„1+0.000„01) =-(1.111„1-[x]补+0.000„01) =-(1.111„1-1.x1x2„xn+0.000„01) =-(0.x1x2„xn+0.000„01)
第二部分:数据的表示和运算
(3) 规格化处理 尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为 11.00010101(10),阶码为00 011。 (4) 舍入处理 采用0舍1入法处理,则有 11. 0 0 0 1 0 1 0 1 + 1 ----------------------11. 0 0 0 1 0 1 1 0 (5) 判溢出 阶码符号位为00,不溢出,故得最终结果为 x+y=2011×(-0.11101010)
③(6DC6)H
④(1C2)H
下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数 器(具有自增功能),M为主存(受R/W信号控制),AR为主存地址寄存 器,DR为数据缓冲寄存器。ALU由加减控制信号决定完成何种操作。控制 信号G控制的是一个门电路。另外,线上标注有控制信号,例如Yi表示Y寄 存器的输入控制信号,R1o表示寄存器R1的输出控制信号。未标注的线为 直通线,不受控制。
现有“ADD R2, R0”指令完成(R0) + (R2) →R0的功能操作。请画出该指令 的指令周期流程图,并列出相应的微程序控制信号序列。假设该指令的地 址已放入PC中。
第二部分:数据的表示和运算
举例:由浮点数的存储格式,求其代表的真值 若浮点数x的二进制存储格式为(41360000)16,求此IEEE754格 式32位浮点数的十进制值。 思路:将存储格式展开为IEEE754标准格式,拆分出其符号位、 阶码位和尾数位,即可得到其真值。 解:将16进制数展开后,可得二制数格式为 0100 0001 0011 0110 0000 0000 0000 0000 e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)S×1.M×2e=+(1.011011)×23 =+1011.011=(11.375)10
i=1 i=1 i=0
n
n
n百度文库
再根据补码与真值的对应关系 [x/2]补=x0.x0x1x2…xn
第二部分:数据的表示和运算
已知[x]补 = x0.x1x2…xn 求证 [1-x]补 = x0.x1x2…xn + 2-n
思路:对于可能涉及运算关系的证明,首先考虑是否可以应用补码的运 算规则去证明。
证明: [1-x]补 = [1]补 + [-x]补 = 1 + x0.x1x2…xn + 2-n = x0.x1x2…xn + 2-n
第二部分:数据的表示和运算
举例:由十进制数的真值,推出其IEEE754格式的存储形式 将十进制数20.59375转换成32位IEEE754格式浮点数的二进制 格式来存储。 思路:将十进制数转换位二进制数,并表示为1.xxx×2n形式, 即可得到符号位、阶码位和尾数位,然后IEEE754标准格式代 入即可。 解: 首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011×24 (e=4) 于是得到: S=0, E=4+127=131=10000011, M=010010011 最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000 =(41A4C000)16
第二部分:数据的表示和运算
设有两个十进制数:x=-0.875×21, y=0.625×22。假设阶码占2位,阶 符1位,数符1位,尾数3位。通过补码运算规则求出z = x-y 的二进制浮 点规格化结果。 思路:按照浮点数加减法的步骤,即对阶、尾数运算、结果规格化、舍 入处理及判溢出 解: 将x,y化成二进制 x=(-0.111)2×2+01 y=(+0.101)2×2+10 假设尾数用两个符号位的补码表示,阶码用单符号位补码表示,则有: [x]补=001,11.001 [y]补=010,00.101 [-y]补=010,11.011 (1)对阶 Δ E=Ex-Ey=[Ex]补+[-Ey]补=001+110=111 即Δ E为-1,x的阶码小,应使x尾数右移1位,Ex加1,于是得到 [x]补=010,11.100(1)
15 OP
15
10 9 ——
8 7 目标
4 3 源
0 MOV S,D
10 9 8 7 4 3 0 OP 基值 源 变址 位移量
10 9 OP —— 8 目标 20 位地址 3 0
STA S,M
15
LDA S,M
要求: (1)分析三种指令的指令格式与寻址方式特点。 (2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种 指令的执行时间有时会等于第三种指令的执行时间吗? (3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码 不正确,如何改正才能成为合法指令? ①(F0F1)H (3CD2)H·②(2856)H
第二部分:数据的表示和运算
设x=2010×0.11011011,y=2100×(-0.10101100),求x+y。 思路:按照浮点数加减法的步骤,即对阶、尾数运算、结果规格化、舍入处理 及判溢出,如无特殊要求,尾数和阶码均可用补码表示 解: 为便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用双符 号位,则它们的浮点表示分别为 [x]浮=00 010, 00.11011011 [y]浮=00 100,11.01010100 (1)求阶差并对阶 Δ E=Ex-Ey=[Ex]补+[-Ey]补=00 010+11 100=11 110 即Δ E为-2,x的阶码小,应使Mx右移2位,Ex加2, [x]浮=00 100, 0.00110110(11) 其中(11)表示Mx右移2位后移出的最低两位数。 (2)尾数求和 00. 0 0 1 1 0 1 1 0 (11) + 11. 0 1 0 1 0 1 0 0 -------------- 11. 1 0 0 0 1 0 1 0 (11)
某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位 基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇 编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。 三 种 指 令 的 操 作 码 分 别 是 MOV(OP)=(0A)H , STA(OP)=(1B)H , LDA(OP)=(3C)H 。MOV是传送指令,STA为写数指令,LDA为读数指 令。