問題のコードの部分は、MIPS 命令で使用されているレジスタをデコードしようとしています。
これは、レジスタの整数値を渡すことで実行され、レジスタの名前を含む文字列が返されます。これを行うプリンス ステートメントはここにあります。ここでは、文字列を取得するために getReg を呼び出します。
printf("$%d aka $%s\n", itype->rs, getReg(itype->rs));
これまでのところ、これを連結して(ケースステートメントなしで)試しました:
char* getReg(int d) {
char out[4];
sprintf(out, "a%d", (d - 4));
return out;
}
しかし、出力は次のようになります。
$6 別名 $ìü(
それがいつあるべきか:
$6 別名 $a2
これのどこが間違っているのですか?