评分及理由
(1)得分及理由(满分6分)
学生答案:R: 87654321H, Q: 0000 0000H, Y: FFFFFFFFH;控制逻辑包含计数器;3种。
标准答案:R: 0xffffffff, Q: 0x87654321, Y: 0xfffffffe;b部件(控制逻辑)包含计数器;ALU运算有加法和减法两种。
分析与评分:
- 寄存器初始值:学生答案中R和Q的值与标准答案完全互换,Y的值也错误。这属于对补码除法器初始状态(被除数、除数、余数)理解有根本性错误。根据题目代码,`scov`指令将R1符号扩展为{R0,R1},`idiv`指令执行{R0,R1}/R2。因此,被除数(64位)的高32位在R0,低32位在R1,除数(32位)在R2。d[i]=0x87654321(负数),经符号扩展后,R0应为全1(0xffffffff),R1仍为0x87654321。在除法器中,通常Q寄存器存放被除数/商的低32位(即R1的内容),R寄存器存放被除数的高32位/余数(即R0的内容),Y存放除数(即R2的内容)。x=0xff(正数),经符号扩展为32位应为0x000000ff,但标准答案给出Y=0xfffffffe,这可能是考虑了某种特定的补码除法算法(如不恢复余数法)对除数进行的预处理(例如取[-|Y|]补码)。学生答案未体现此处理,且R、Q赋值颠倒,核心逻辑错误。此项扣3分。
- 计数器部件:学生指出“控制逻辑包含计数器”,与标准答案“b中的控制逻辑包含计数器”一致,思路正确。此项得1分。
- ALU运算种类:学生答“3种”,标准答案为加法和减法两种。在不恢复余数除法中,ALU主要执行“加”或“减”除数的操作,本质是两种运算。学生答案错误。此项扣1分。
本小题扣分共计4分,得分为2分。
(2)得分及理由(满分5分)
学生答案:除数为0,即X为00时,发生除法异常;CPU需完成关中断,保存断点、执行中断隐指令。
标准答案:除数为0异常(x为0x00000000);溢出异常(d[i]为0x80000000,x为0xffffffff)。异常响应:关中断,修改CPU状态为内核态,保存断点(PC和PSWR),跳转到异常处理程序。
分析与评分:
- 异常情况:学生仅正确指出了“除数为0”这一种异常情况,但遗漏了“溢出异常”(即被除数为最小负数、除数为-1的情况)。标准答案...
登录后发布评论
暂无评论,来抢沙发