文章

63

粉丝

0

获赞

0

访问

13.3k

头像
2024年计算机学科专业基础综合试题 - 第43题回答
计算机组成原理
发布于2025年10月4日 10:56
阅读数 250

(1) 2^(24-20+1)=32,共有32个寄存器。因为M采用32位定长指令字,寄存器存储的数据长度为32,所以shamt左移的最大范围不超过32。32=2^5

(2) ALUBsrc = 0,它的作用是支持 lw 指令和 imm 的偏移(R[rd] ← M[R[rs1]+imm])87654321H+98765432H=11FDB9753H,此时最高位的1要被省略,最后计算的结果为F=1FDB9753H,OF 是溢出位,我们计算的结果发现确实发生了溢出和进位,所以 OF=1。CF 是进位位,计算时发现了最高位有进位,所以 CF=1。

(3) slli 代表左移指令,slli 指令的高 12 位(即 IR[31:20])的最高位为 0,因此无论进行零扩展还是符号扩展,都是在高位补 0,效果等价,因此 Ext 可以是 0 也可以是 1。

(4)计算偏移地址,偏移地址可正可负,应该使用补码表示。所以是符号扩展,Ext=1,然后表示加法,所以可知 ALUctr=000。

(5)该机器码前7位不全为0。

(6)A040 A103H = 1010 0000 0100 0000 1010 0001 0000 0011B,6~0 位 = 000 0011,中间的 14~12 位 = 010, 最高的 12 位为 A04。imm 是 31~20,也就是 A04(注意是符号扩展)扩展完 1111 1111 1111 1111 1111 1010 0000 0100,十六进制是 FFFF FA04。rs1 里的内容加上立即数,等于真正要访问的内存地址,R[O1H]=FFFFA2DOH,所以 FFFFFA04 + FFFFA2D0 = FFFF9CD4H。


评分及理由

(1)得分及理由(满分2分)

学生回答通用寄存器数量为32,理由正确(5位表示寄存器编号,2^5=32);shamt占5位的原因正确(32位字长,左移范围0~31,需要5位表示)。答案与标准答案一致。得2分。

(2)得分及理由(满分3分)

学生正确给出ALUBsrc=0;正确计算F=1FDB9753H;正确给出OF=1和CF=1。但标准答案中明确指出对于无符号整数溢出应根据CF判断,学生未提及此点,属于遗漏关键内容。扣1分。得2分。

(...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发