文章
371
粉丝
21
获赞
1
访问
29.2k

评分及理由
(1)得分及理由(满分2分)
第一问:计算f(10)需要调用函数f1的次数为10次,学生答案正确,得1分。
第二问:执行第16行的call指令会递归调用f1,学生答案正确,得1分。
本小题共得2分。
(2)得分及理由(满分2分)
第一问:条件转移指令是第12行的jle指令,学生错误地认为是第16行的call指令,扣1分。
第二问:一定会使程序跳转执行的指令包括第16行call、第20行jmp和第30行ret,学生只答了第12行(实际为条件转移,不一定跳转)和第20行,遗漏了第16行和第30行,扣1分。
本小题共得0分。
(3)得分及理由(满分4分)
第一问:第17行指令的虚拟地址应为0040102AH,学生未给出正确地址,扣1分。
第二问:偏移量计算过程错误,结果应为FFFFFFD6H,学生计算表达式错误但结果正确(第一次识别结果正确,第二次识别结果表达式错误但数值正确),根据识别误写规则不扣分,得2分。
第三问:M采用小端方式,学生答案正确(“小立端”和“小端”均判断为正确),得1分。
本小题共得3分。
(4)得分及理由(满分4分)
第一问:f1(13)返回值不正确的原因是int型溢出,学生答案正确,得2分。
第二问:修改方法是将int改为long long或double,学生答案正确,得2分。
本小题共得4分。
(5)得分及理由(满分4分)
第一问:溢出标志OF=1的条件是乘积的高33位非全0且非全1(或高32位不全为符号扩展位),学生答案“高32位不全为0”不完整(未考虑符号扩展),扣1分。
第二问:应在imul指令后加溢出自陷指令(如into),学生答案“无条件转移指令”错误,扣1分。
本小题共得2分。
题目总分:2+0+3+4+2=11分
登录后发布评论
暂无评论,来抢沙发