计算机考研408统考真题及答案解析

您所在的位置:网站首页 考研有真题 计算机考研408统考真题及答案解析

计算机考研408统考真题及答案解析

2024-07-17 03:40| 来源: 网络整理| 查看: 265

(1) 第一问。ALU的宽度为16位。ALU的宽度是指它能够处理的位数。一般等于字长,因为计算机M字长为16位,所以ALU的宽度为16位。

第二问。可寻址主存空间大小为 2^20 字节(或1MB)。地址线20位,可表示地址数为 2^20 ,计算机按字节编址,所以主存空间大小为 2^20×1B=2^20B=1MB 。

第三问。指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)各有16位、20位和8位。指令寄存器用于存储指令,指令字长16位。主存地址寄存器(MAR)位数等于地址线位数,地址线为20位,所以MAR有16位。主存数据寄存器(MDR)位数等于数据线位数,数据线为8位,所以MDR有8位。

(2) 第一问。R型格式最多有16种操作。R型格式操作码op1占4位,最多有 2^4=16 种操作。

第二问。I型和J型格式总共最多有63种操作。I型格式操作码op2和J型格式操作码op3都占高6位,但其中00000操作码已经被R型占用,所以I型和J型格式总共最多有 2^6−1=63 63种操作。

第三问。通月寄存器最多有4个。rs、rt和rd为通用寄存器编号,都占2位,所以通月寄存器最多有 2^2=4 个。

(3) 指令01B2H = 0000 0001 1011 0010B,高6位为000000,为R型格式指令,所以  ,表示R[rd] ← R[rs] op1 R[rt],op1=0010表示带符号整数减法指令,rs为1号寄存器,内容为B052H,rt为2号寄存器,内容为0008H,rd为3号寄存器,内容为0020H,即其功能为 R[3]←R[1]-R[2]。执行指令01B2H后,R[3]=B052H-0008H=B04AH,被减数B052H和减数0008H均视为无符号数,显然B052H够减0008H,该减法没有发生借位,结果不溢出。

指令01B3H = 0000 0001 1010 1011B,为R型格式指令,所以  ,表示R[rd] ← R[rs] op1 R[rt],op1=0011表示带符号整数乘法指令,rs为1号寄存器,内容为B052H,rt为2号寄存器,内容为0008H,rd为3号寄存器,内容为0020H,即其功能为 R[3]←R[1]×R[2]。执行指令01B3H后,R[3]=B052H×0008H。关于该乘法的计算,有如下两种方法:

方法一:十进制乘法

将二进制乘法转化为十进制乘法计算,R[3]=B052H×0008H=-20398×8=-163184,16位有符号整型的表示范围为-32768~32767,-163184超出其表示范围,结果溢出。

方法二:补码一位乘法(Booth乘法)

带符号整数乘使用的是补码一位乘法(Booth乘法)。Booth乘法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。其中Booth算法在操作时,需要遵循一个操作表:

具体步骤如下:

被乘数X与乘数Y均以补码的形式参加乘法运算,运算结果是积的补码。 部分积和被乘数X采用双符号位,乘数Y采用单符号位。 初始部分积为0。运算前,在乘数Y的补码末位添加一位附加位 Yn+1 ,初始值为0。 根据 YnYn+1 的值,按照上表进行累加右移操作,右移时遵循补码的移位规则。 累加n+1次,右移n次,最后一次不右移。

模拟上述过程得到R[3] = B052H×0008H = 1111 1111 1111 1101 1000 0010 1001 0000B,因为寄存器只能存储16位有符号整型,所以低15位为数值位,高17位为符号位和符号扩展位,高17位非全1,结果溢出。

方法三:用算术左移运算模拟乘法运算

R[3]=B052H×0008H中乘数0008H= 2^3 ,经过编译器优化后,乘法运算可以转化为算术左移运算,这里在单符号位基础上扩展16位符号扩展位,用



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3