c 语言程序应填空的部分:

  1. k=array1[i][j];
  2. array2[i]+=k;
  3. return sum;

解释:

  1. 根据汇编代码中的 movl %eax, -8(%ebp) 可知,k 存储在 -8(%ebp) 的位置上,而根据 C 语言程序中的 array1[i][j],可知 k 的值应该是 array1[i][j],因此需要填写 k=array1[i][j]。

  2. 根据汇编代码中的 movl array2(,%eax,4), %edx 和 movl %edx, array2(,%eax,4) 可知,array2[i] 存储在 array2(,%eax,4) 的位置上,而根据 C 语言程序中的 array2[i]+=k,可知需要将 k 加到 array2[i] 上,因此需要填写 array2[i]+=k;。

  3. 根据汇编代码中的 movl $6, -12(%ebp) 可知,sum 存储在 -12(%ebp) 的位置上,而根据 C 语言程序中的 return sum;,可知需要返回 sum 的值,因此需要填写 return sum;。

如下是一个 c 语言程序及其对应的汇编代码32 位机小端环境下编译请参照汇编代码完成 c 程序的空缺部分。c 语言程序:#include stdioh#define X 16#define Y 1 int array1XY;int array2X;int testint sum= 2 ;int i=0j=0k=0;fori=1j=2;iX && jY;i++k= 3 ;array2i+= 4 ;j

原文地址: https://www.cveoy.top/t/topic/gSgr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录