[解決済み] MIPSの擬似命令 "move "の "addi "と "add "の違い?
2022-03-07 16:52:14
質問
今回の疑似インストラクションについて。
move $rt, $rs
アセンブリコードは、addiとaddのどちらでも良いのでしょうか?つまり、どちらを使ってもいいのでしょうか?
add $rt, $rs, $0
または
addi $rt, $rs, $0
?
編集する
を間違えてしまったようです。
addi
add $rt, $rs, $0
と同じになります。
addi $rt, $rs, 0
から
add
はレジスタを追加するので、その直下に定数が必要です。
addi
どのように解決するのですか?
その
addi
命令では
即時
オペランドはレジスタではありません。
$0
は実際には
0
:
add $rt, $rs, $0
addi $rt, $rs, 0
両者とも 働く で、必要な情報はすべて命令自体にエンコードされています)。
add $d, $s, $t
0000 00ss ssst tttt dddd d000 0010 0000
addi $t, $s, i
0010 00ss ssst tttt iiii iiii iiii iiii
しかし、それはより
通常
を使うだけで、ゼロロックの
$0
というのも、結局のところ、これがレジスタの目的だからです。
しかし、符号付き命令では余分なオーバーフロー・チェックが行われる可能性があると記憶していますので、符号なしのバリエーションを使用することもあります。
addu $rt, $rs, $0
関連
-
[解決済み] テスト
-
[解決済み] Lc3分割のしくみ
-
[解決済み] なぜSet on Less ThanはALU演算なのか?
-
[解決済み] アセンブリ命令のトラップは何をするのですか?
-
[解決済み] ARMアセンブリのstrの説明
-
[解決済み] MIPS浮動小数点:SWC1対S.S.
-
[解決済み] アセンブリで文字列の長さを表示する方法
-
[解決済み] x86アセンブリでレジスタに使用されるpush/pop命令の機能は何ですか?
-
[解決済み] 1サイクルあたり4FLOPの理論上の最大値を達成するにはどうすればよいですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】andiとoriはこのプログラムで何をするのですか?
-
[解決済み] callq命令とは何ですか?
-
[解決済み] NASMでscanfを使うには?
-
[解決済み] Lc3分割のしくみ
-
[解決済み] アセンブリで数字をASCIIに変換する
-
[解決済み] ARMアセンブリループ
-
[解決済み] オブジェクトファイルのシンボルテーブルとリロケーションテーブル
-
[解決済み] ループ内で配列の個々の要素にアクセスするにはどうしたらよいですか?
-
[解決済み] アセンブリMIPS .ALIGNとメモリアドレスの理解
-
[解決済み] ベースレジスタを持たないqword ptr [hexvalue]の意味するところ