文章
63
粉丝
0
获赞
0
访问
13.3k
(1)数组a的首地址位于寄存器03H中,变量i位于寄存器02H中,sum位于寄存器01H中。
(2)i=5,所以a[i]的地址为0013DFF0H+14H=0013E004H。所以a[i]=FFFFECDCH。sum等于a[i]加上寄存器r1的值,所以sum=FFFFECDCH+00001332H=0000000EH。4KB=2^12B,所以页内偏移为低12位,页号为后20位,a[i]所在的页对应的页号为0013EH。数组a从a[0]到a[5]共存放在0013DH到0013EH这两个页面中
(3)由指令得shamt=00010B,rs1=00010B,rd=00100B,所以机器码等于00212213H。short类型占2B,所以只需将i左移1位即可,汇编形式为slli r4, r2, 1。
评分及理由
(1)得分及理由(满分3分)
学生正确识别了数组a的首地址寄存器为03H,变量i寄存器为02H,sum寄存器为01H,与标准答案完全一致。得3分。
(2)得分及理由(满分5分)
学生正确计算了a[i]的地址为0013E004H,a[i]的机器数为FFFFECDCH,sum的机器数为0000000EH,以及a[i]所在页号为0013EH,这些都与标准答案一致。但在计算数组a占用的页数时,学生说“数组a从a[0]到a[5]共存放在0013DH到0013EH这两个页面中”,这里存在逻辑错误:题目中数组a的首地址是0013DFF0H,该地址所在的页号是0013DH(因为页内偏移为低12位,0013DFF0H & 0xFFF = FF0H,页号 = 0013DFF0H >> 12 = 0013DH)。a[i]的地址0013E004H所在页号为0013EH。由于数组a从0013DFF0H开始,到a[5]的地址0013E004H结束,确实跨越了0013DH和0013EH两个页,但学生没有明确指出数组a至少存放在2页中,而是具体到a[0]到a[5]的存储,虽然结论正确,但表述不够准确。考虑到核心计算正确,仅扣1分。得4分。
(3)得分及理由(满分2分)
学生正确给出了机器码00212213H和修改后的汇编指令slli r4, r2, 1,与标准答案完全一致。得2分。
题目总分:3+4+2=9分
登录后发布评论
暂无评论,来抢沙发