文章

159

粉丝

0

获赞

0

访问

9.8k

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

(1)计算f(10)需要调用函数f1共10次,执行第16行的call指令会递归调用f1。
(2)第12行的jle指令是条件转移指令,其含义为小于等于时转移,本行代码的意义为:
当n<1时,跳转至地址00401035H。第16行的call指令为函数调用指令,第20行的jmp指令
为无条件转移指令,第30行的ret指令为子程序的返回指令,这三条指令一定会使程序跳转执行。
(3)其长度计算机M上按字节编址,第16行的call指令的虚拟地址为00401025H,长度
为5字节,故第17行的指令的虚拟地址为00401025H+5=0040102AH。第16行的call指令

KE
采用相对寻址方式,即目标地址=(PC)+偏移量,call指令的目标地址为00401000H,所以偏
移量=目标地址-(PC)=00401000H-0040102AH=FFFFFFD6H。根据第16行的call指令的
偏移量为D6FFFFFF,可以确定M采用小端方式。

4)因为(13)=6227020800,其结果超出了32位int型数据可表示的最大范围,因此{13)
的返回值是一个发生了溢出的错误结果。为使f1(13)能返回正确结果,可将函数f1的返回值类
型改为 double(或 long long,或 long double,或 float)型。
2A

5)若乘积的高33位为非全0或非全1,则OF=1。编译器应在imul指令后加一条“溢出
自陷指令”,使得CPU自动查询溢出标志OF,当OF=1时调出“溢出异常处理程序”。


评分及理由

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

得分:2分

理由:学生完全正确回答了问题,准确指出计算f(10)需要调用函数f1共10次,并正确指出第16行的call指令会递归调用f1。

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

得分:2分

理由:学生正确识别了第12行的jle指令是条件转移指令,并准确列出了第16行的call指令、第20行的jmp指令和第30行的ret指令一定会使程序跳转执行。

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

得分:3分

理由:学生正确计算了第17行指令的虚拟地址为0040102AH,并正确计算了偏移量为FFFFFFD6H。但在判断M采用小端方式时,学生提...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发