解答:
(1) 第一问。观察f1的C语言代码,可知f1(n)用递归方法计算n!,计算f(10)需要调用函数f1共10次。
第二问。执行第16行的指令会递归调用f1。
方法一:观察f1的汇编代码,第16行call f1,表示递归调用f1。
方法二:观察f1的指令地址,第16行跳转到第1行的地址00401000执行,表示从头开始执行f1。
(2) 第一问。观察f1的汇编语言代码,可知第12行jle (jump when less or equal) 指令是条件转移指令。结合f1的C语言代码分析可知,n1为真时执行if的第一个分支。因为n