文章

63

粉丝

0

获赞

0

访问

13.1k

头像
2019年计算机学科专业基础综合试题 - 第45题回答
计算机组成原理
发布于2025年10月14日 09:31
阅读数 210

(1)f(10)需要调用函数f110次。第16条指令call f1(00401000)会递归调用f1。

(2)第12条指令jle f1+35h(00401035)是条件转移指令。第16条指令call f1 (00401000),第20条指令jmp f1+3Ah(0040103)与第30条指令ret一定会使程序执行跳转。

(3)第17行指令的虚拟地址应该是00401025H+5=0040102AH。偏移指令应该为00401000-0040102AH=FFFFFFD6H。由题目给出的机器指令可知,D6字节在低地址处,所以为小端存储。

(4)int型整数有32位,可表示最大整数是2^32-1=2147483647。f(13)超出了int能表示的最大整数,所以发生了溢出。如果要使f1(13)可以返回正确的结果,需要将int修改为long long64位整数类型。

(5)当乘法器的高32位不是低32位的最高位的符号扩展时,溢出标志OF=1。加一条调用溢出异常处理指令。


评分及理由

(1)得分及理由(满分2分)

学生正确回答了调用次数为10次,并正确指出第16条指令call f1会递归调用f1。答案与标准答案完全一致,因此得2分。

(2)得分及理由(满分2分)

学生正确识别了第12条jle指令为条件转移指令,并正确列出了第16条call、第20条jmp和第30条ret指令一定会使程序跳转执行。答案与标准答案完全一致,因此得2分。

(3)得分及理由(满分4分)

学生正确计算了第17行指令的虚拟地址为0040102AH,并正确计算了偏移量为FFFFFFD6H,同时正确判断为小端方式。但学生在计算偏移量时写为“偏移指令应该为00401000-0040102AH=FFFFFFD6H”,表述不够严谨(应为“偏移量”而非“偏移指令”),但计算过程和结果正确,且小端方式判断正确。因此扣0.5分,得3.5分。

(4)得分及理由(满分4分)

学生正确指出int型数据表示范围不足导致溢出,并正确提出修改为long long类型。答案与标准答案完全一致,因此得4分。

(5)得分及理由(满分4分)

学生第一问回答“当乘法器的高32位不是低32位的最高位的符号扩展时,溢出标志OF=1”,这与标准答案中“乘积的高33位为非全0或非全1”本质一致(符号扩展不一致即非...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发