己知f(n)=n!=n×(n-1)×(n-2)×…×2×1,计算f(n)的C语言函数f1的源程序(阴影部分)及其在32位计算机M上的部分机器级代码如下: 其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令,计算机M按字节编址,int型数据占32

admin2020-06-17  33

问题 己知f(n)=n!=n×(n-1)×(n-2)×…×2×1,计算f(n)的C语言函数f1的源程序(阴影部分)及其在32位计算机M上的部分机器级代码如下:
  
其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令,计算机M按字节编址,int型数据占32位。请回答下列问题:
第19行imul指令(带符号整数乘)的功能是R[eax]←R[eax]×R[ecx],当乘法器输出的高、低32位乘积之间满足什么条件时,溢出标志OF=1?要使CPU在发生溢出时转异常处理,编译器应在imul指令后应加一条什么指令?

选项

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

解析
转载请注明原文地址:https://kaotiyun.com/show/0U3i777K
0

相关试题推荐
最新回复(0)