0

我必须用尽可能少的命令将 C 代码中的这个 FIR 滤波器转换为程序集 mips64。如何fir在程序集 mips64 中使用超过 4 个参数的函数?我正在使用 winmips64 作为模拟器。我只关心正确声明函数

void fir(int X[], int H[], int Y[], int n, int m)
{
    int i, j;
    int y0;
    
    for (j=0; j<m; j++){
        y0=0;
        for (i=0; i<n; i++){
            y0+=X[i+j]*H[i];
        }
        Y[j]=y0;
     }
}
4

1 回答 1

1

模拟器本身很可能并不关心您的调用约定。

查看您的作业文本和课程作业,了解您应该遵循的官方调用约定。

如果您从 C 调用汇编代码,那么一种方法是编译和反汇编调用者的 C 代码以查看参数是如何传递的,这就是您应该期望接收它们的方式。(您也可以编译实际函数的 C 版本。)

我只关心正确声明函数

汇编中没有声明函数(函数签名)的概念。(搜索声明与定义。)在汇编中只有函数名,以及参数的期望(由调用者和被调用者)/在哪里,这由适用的调用约定决定。

于 2020-11-20T15:56:15.537 回答