文章
438
粉丝
0
获赞
0
访问
76.5k

评分及理由
(1)得分及理由(满分6分)
学生答案中,对于寄存器R、Q、Y的初始内容回答有误。根据题目,`scov`指令将R1符号扩展为64位存入{R0,R1},然后`idiv`指令执行{R0,R1}/R2。被除数d[i]=0x87654321是负数(最高位为1),符号扩展后高32位(R0)应为全1,即0xFFFFFFFF。除法开始时,被除数的高32位应放入R寄存器,低32位放入Q寄存器,除数放入Y寄存器。因此:
R初始应为0xFFFFFFFF(被除数高32位),
Q初始应为0x87654321(被除数低32位),
Y初始应为除数x=0xFF的符号扩展,即0xFFFFFFFE(因为0xFF是-1的补码,扩展为32位是0xFFFFFFFF,但图中Y是n+1位?此处标准答案给出Y=0xFFFFFFFE,可能是考虑了n+1位或特定处理,学生答案Y=0xFFFFFFFF接近但不等同)。
学生答案中R和Q的值错误(R误为被除数低32位或全0,Q误为0),Y值错误(应为除数符号扩展)。
对于“图中哪个部件包含计数器?”学生未回答,扣分。
对于“ALU运算有几种?”学生回答“加法,减法”正确。
综上,本小题共6分,其中寄存器初始值部分占主要分数(约4分),学生回答基本错误;计数器部分未答扣分;ALU运算种类回答正确。给予1分(仅ALU运算部分正确)。
(2)得分及理由(满分5分)
学生答案中,只回答了除数为0的情况(X=0x00000000),未回答溢出异常的情况(被除数为-2^31且除数为-1时)。因此遗漏了第二种异常情况。
对于“发生除法异常时,CPU需要完成哪些操作?”学生回答“关中断,保存断点,引入中断服务程序”,基本正确,但“引入中断服务程序”表述不如“跳转到异常处理程序”精确,考虑到识别可能误差,不扣分。
本小题共5分,异常情况部分占3分,学生只答对一半(除数为0),扣1.5分;CPU操作部分占2分,学生回答基本正确,给2分。本小题得分2.5分,四舍五入给3分。
题目总分:1+3=4分
登录后发布评论
暂无评论,来抢沙发