文章
43
粉丝
0
获赞
0
访问
410
(1)最多有4个通用寄存器。shamt占5位因为计算机字长为32位是2的5次方,移位最多5位
(2)执行add指令时,ALUBsrc应该取0。F为1fdb9753,OF为1,CF为1。add指令处理无符号整数要根据OF标志判断是否溢出
(3)因为执行slli指令时候需要移位,而移位可以左移也可以右移,所以Ext可以取0或1用来区分零扩展还是符号扩展
(4)Ext取1,ALUctr取010
(5)因为只有lw指令的0~3位为3,13~14位为1,而且只有lw指令的25~31位为非0
评分及理由
(1)得分及理由(满分2分)
得分:0分
理由:学生回答“最多有4个通用寄存器”错误。根据指令格式图,rs1和rs2字段各占5位,因此通用寄存器数量应为2^5=32个。学生回答的4个没有依据。对于shamt占5位的解释,学生回答“计算机字长为32位是2的5次方,移位最多5位”,此解释基本正确,但因其前半部分关于寄存器数量的根本性错误,且表述不够严谨(应为“最大移位位数不超过31,需要5位二进制表示”),故本小题整体不得分。
(2)得分及理由(满分3分)
得分:2分
理由:学生回答“ALUBsrc应该取0”正确(1分)。对于F、OF、CF的计算结果“F为1fdb9753,OF为1,CF为1”均正确(1分)。但学生回答“add指令处理无符号整数要根据OF标志判断是否溢出”错误。对于无符号整数加法,判断溢出(即进位)应依据CF标志,而非OF标志。OF标志用于有符号整数的溢出判断。因此,本小题扣1分。
(3)得分及理由(满分2分)
得分:0分
理由:学生回答“因为执行slli指令时候需要移位,而移位可以左移也可以右移,所以Ext可以取0或1用来区分零扩展还是符号扩展”错误。slli指令是逻辑左移指令,其立即数字段(shamt)在指令编码中只占低5位,高7位(在IR[31:25]位置)根据指令格式图恒为0。因此,无论Ext进行零扩展还是符号扩展,高7位扩展结果都是0,效果相同。学生的解释与指令功能(左移/右移)和扩展控制信号的作用无关,逻辑错误。
(4)得分及理由(满分2分)
得分:1分
理由:学生回答“Ext取1”正确(1分)。因为lw指令的偏移量imm是带符号的,需要进行符号扩展。但学生回答“ALUctr取010”错误。ALUctr=010对应...
登录后发布评论
暂无评论,来抢沙发