[解決済み] ARMのアセンブリ言語でbx lrは何をするのですか?
2022-01-31 20:18:24
質問内容
bx lr が何をしているのか、bl (label) とどう違うのか、いまいち理解できません。bl (label)がその関数のリターンアドレスをリンクレジスタに格納することは知っていますが、bx lrが何をするのかがわかりません。
どのように解決するのですか?
bx
は
分岐・交換命令セット
つまり、分岐先のアドレスのlsb(最下位ビット)により、プロセッサは次の命令をARMとして扱うか、サムとして扱うかを決定するのです。
として
lr
は通常リターンアドレスを保持し、これは関数からの戻り値であることを意味します。
lr
が1であれば、そのアドレスのコードをサムとして扱い、そうでなければARMとして扱います。
関連
-
[解決済み] MIPSのコードのこの部分で、oriはどのように使われているのですか?
-
[解決済み] CPUのParity Flagは何のためにあるのですか?
-
[解決済み] BL命令ARM - その仕組み
-
[解決済み] アセンブリで文字列の長さを表示する方法
-
[解決済み] なぜGCCはa*a*a*a*aを(a*a*a)*(a*a*a)に最適化しないのでしょうか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】Windowsの.exeを「デコンパイル」することは可能ですか?または少なくともアセンブリを表示することはできますか?
-
[解決済み】マルチコアアセンブラとはどのようなものですか?
-
[解決済み】ベースポインタとスタックポインタとは一体何でしょうか?これらは何を指しているのでしょうか?
最新
-
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 のポイント【重複あり
-
[解決済み] MIPs Assemblyでsllなどを使ってビットをずらすのはなぜですか?
-
[解決済み] CPUのParity Flagは何のためにあるのですか?
-
[解決済み] cmovlオペコードの中で何と何が比較されるのですか?
-
[解決済み] x86アセンブリで160x100モードを実現する
-
[解決済み] エラー: `push' の命令サフィックスが無効です [重複].
-
[解決済み] テストのポイント %eax %eax [重複]。
-
[解決済み] ARMv8でリテラル0ではなく、xzrレジスタを使用するのはなぜですか?
-
[解決済み] インテルアセンブリの%ripレジスタを理解する
-
[解決済み] LC3 LEA 命令と格納された値