文章

35

粉丝

0

获赞

1

访问

4.5k

头像
【2019年】408计算机统考真题模拟考试 - 第45题答案笔记
计算机组成原理
发布于2025年5月15日 09:31
阅读数 107

计算机考研408统考历年真题及答案解析

(1)调用10次,执行第16行的call指令

(2)第12行的jle指令为条件转移指令,ret,jmp,call指令一定会使程序跳转执行

(3)16行指令字长为5字节,应为00401025+0000005=0040102A,采用相对寻址,跳转到00401000处,pc存储下一条指令地址,所以相对偏移量应为0040102A-00401000=0000002A,所以应采用大端方式

(4)阶乘应该全为正数,图中程序为imul,相比无符号整数的表示范围小,可能产生溢出导致结果错误,应将程序中的imul改为umul。

(5)当高32位乘积不全为低32位乘积的符号位时,结果发生溢出,应该添加一个自陷指令。


评分及理由

(1)得分及理由

得分:2分

理由:学生正确回答了计算f(10)需要调用函数f1的次数(10次),并正确指出了递归调用发生在第16行的call指令。答案与标准答案完全一致。

(2)得分及理由

得分:2分

理由:学生正确识别了条件转移指令(第12行jle)和无条件跳转指令(ret、jmp、call)。答案与标准答案完全一致。

(3)得分及理由

得分:1分

理由:学生正确计算了第17行指令的虚拟地址(0040102A),但在计算偏移量时错误(应为00401000-0040102A=FFFFFFD6,而非0000002A),且错误判断为大端方式(实际为小端方式)。偏移量计算错误扣2分,端方式判断错误扣1分。

(4)得分及理由

得分:1分

理由:学生正确指出了溢出问题,但提出的解决方案(将imul改为umul)不正确。正确的解决方案应为修改返回值类型为更大范围的数据类型(如long long)。溢出原因分析正确得1分,解决方案错误扣3分。

(5)得分及理由

得分:2分

理由:学生正确描述了溢出条件(高32位乘积不全为低32位乘积的符号位时溢出),并正确提出了添加自陷指令的解决方案。答案与标准答案基本一致,但表述略有不同,不扣分。

题目总分:2+2+1+1+2=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发