私は私の学校のコンピューターアセンブリと組織クラスに所属しています。私は理解できないMIPS MARSのコードを持っています。教師は本を教えていないので、MIPS MARSでこれをコーディングする方法を知る方法はありません。 $ sのレジスタに初期値を代入する方法を理解していますが、if文のコーディング方法や見た目の見栄えが分かりません。私の人生を救うためにこの先生から学ぶことができないので、どんな助けもありがたいです。 MIPSアセンブリ言語で次のコードを記述することになっています。Mips Marsブレッチングステートメント
1)MARSアセンブラを使用して、次の高レベルJava文をMIPSアセンブリコードに変換しますか? (60点) 次の分岐文を記述します。 a = 10、b = 16、c = 16、d = 6、aには$ s0、bには$ s1などを使用します。
if(a==b){
Z = a+a;
Z=Z+b+c+d;
}
if(a==b){
Z=a;
Else{
Z = (a+b+c)-d;
}
if (a != b){
Z=a;
Else{
Z = (a+b+c)-d;
}
- 移動1~10倍のループを介して、ループカウンタを書き出します。
- ループを使用して10個の数値の合計を計算します。結果を書き出します。
MARSでは、エディタが私に可能な指示についてのヒントを教えてくれます。すべての条件分岐は 'b'で始まります。ヒントから実際に何をやっているのか分からない場合は、特定の命令をGoogleに試してください(ほとんどの分岐命令は疑似命令です)。 1つの警告は、アセンブル条件付き分岐を検索し、異なるCPUについての説明がある場合、「フラグ」のようなものについて話すかもしれません。 MIPSにはそのようなものはありません.MIPS分岐は常に分岐命令の引数として提供される値に基づいているため、MIPSのみを検索してください。 – Ped7g
MIPSには、分岐を避けるための命令もあります。たとえば、最初の引数が2番目の引数よりも小さい場合は、 'slt'はデスティネーションを' 1 'に設定します。あなたのタスクでは、これらはあまり役に立たないでしょうが、時には分岐を伴わずに '0/1'を持つことは、望みの結果を計算するのに十分です。 –
Ped7g