问答题

已知 f(n)=n!=n×(n-l)×(n-2)×…×2×1,计算 f(n)的 C 语言函数 fl 的源程序(阴影部分)及其在 32 位计算机 M 上的部分机器级代码如下:

其中,机器级代码行包括行号、虚拟地址、机器指令和汇编指令,计算机 M 按字节编址,int 型数据占 32 位。请回答下列问题:

根据第 16 行 call 指令,第 17 行指令的虚拟地址应是多少?已知第 16 行 call 指令采用相对寻址方式, 该指令中的偏移量应是多少(给出计算过程)?已知第 16 行 call 指令的后 4 字节为偏移量,M 采用大 端还是小端方式?

【参考答案】

其长度计算机 M 上按字节编址,第 16 行的 call 指令的虚拟地址为 0040 1025H,长度为 5 字节,故第......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)