0

私の大学では最近 ARM アセンブリのコースが開始され、C コードから呼び出される NxM * MxP 行列乗算プログラムを作成することが割り当てられました。

現在、私は assambler についてかなり限られた知識しか持っていませんが、喜んで学びたいと思っています。私が知りたいのはこれです:

  1. C から ASM に 2D 配列を読み取る/渡す方法は?
  2. 2D配列をCに出力する方法は?

あとは自分で考えようと思っているのですが、難しいのはこの2点です。

私はqemuでARMアセンブリを使用していますが、このコードではUbuntuで使用していますが、特定のデバイスでは使用されていません。

4

2 に答える 2

0

Guillaumes の回答は大いに役立ちましたが、少しのコードで自分の質問に答えようと思いました。

私がやったことは、1D配列を作成し、次元とともにasmに渡すことでした。

    int *p;
    scanf("%d", &h1);
    scanf("%d", &w1);
    int* A =(int *) malloc (sizeof(int) * ( w1 * h1 ));
    p=A;
    int i;
    int j;
    for(i=0;i<(w1*h1);i++)
    {
        scanf("%d", p++);
    }

そうは言っても、別の配列を同じ ( malloc) 方法で割り当て、それも渡しました。次に、必要な int 値をアセンブリ コードの適切なアドレスに格納しました。配列要素のアドレスは変わらないため、同じ配列を使用して結果を出力しました。

于 2013-06-10T05:43:15.853 に答える