[解決済み] MIPSの大、小、大
2022-02-01 17:19:41
質問
2つのレジスタがある場合
$s0
,
$s1
のみを使用して、以下の疑似コードを MIPS アセンブリ言語に変換するにはどうすればよいでしょうか?
slt
(未満に設定)、および
beq
と
bne
(等しい場合に分岐、等しくない場合に分岐)命令です。
if ($s0 > $s1) { goto label1 }
if ($s0 >= $s1) { goto label2 }
if ($s0 <= $s1) { go to label3 }
解決方法は?
疑似コードは順次実行されると仮定しているので、先の条件が真であれば、そこに行って、後の
if
ステートメントを使用します。 これにより、最後の分岐に全く到達していない場合は、その分岐が取られることが保証されるため、条件付きである必要すらありません。 (また、これは分岐遅延スロットのないMIPSであると仮定しています)。
slt $t1,$s1,$s0 # checks if $s0 > $s1
bne $t1,$zero,label1 # if $s0 > $s1, goes to label1
beq $s1,$s2,label2 # if $s0 == $s2, goes to label2
# beq $t1,$zero,label3 # if $s0 < $s1, goes to label3
b label3 # only possibility left
もしそうでない場合は、実装の際に
$s0 >= $s1
として
!($s0 < $s1)
と
slt $t1, $s0, $s1
/
beqz $t1, target
, 例えば
のように、Ahmedさんの回答にあるような
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】テスト %eax %eax のポイント【重複あり
-
[解決済み】Nasmエラー:オペコードとオペランドの無効な組み合わせ
-
[解決済み] MIPs Assemblyでsllなどを使ってビットをずらすのはなぜですか?
-
[解決済み] 着信側セーブレジスタ、発信側セーブレジスタとは何ですか?
-
[解決済み] ミップスアセンブリの文字列の長さ
-
[解決済み] MIPSでディブディブ
-
[解決済み] DOSBox - このプログラムはDOSモードでは実行できません (アセンブリ)
-
[解決済み] x86 - C言語のsscanf関数
-
[解決済み] アセンブリ言語 新規ライン
-
[解決済み] movsbl 命令は何をするのですか?重複