この質問に対する回答が見つかりませんでした。 ARMアーキテクチャがアームモードからサムモードに切り替わると、私に教えてください。切り替えがどのように働くかを説明する。ARMアーキテクチャのアームモードからサムモードに切り替えるすべての方法をリストし、詳細に説明しますか?
答えて
答えはARM ARM(ARMアーキテクチャリファレンスマニュアル)に記載されています。たとえば、ARM命令とThumb命令の両方でBXを参照してください。これが宿題の質問である場合のためのより多くの指示があります。
も例外が発生したときに何が起こるかのための擬似コードを見て:
R14_ = return link SPSR_ = CPSR CPSR[4:0] = exception mode number CPSR[5] = 0 if == Reset or FIQ then CPSR[6] = 1 CPSR[7] = 1 if != UNDEF or SWI then CPSR[8] = 1 CPSR[9] = CP15_reg1_EEbit PC = exception vector address
(ARMのARMで)上記の擬似コードのコメントは、あなたの質問に別の答えを記述します。
ここで明白ではない、おそらくBXおよび他の命令の説明で誤解を招くことがあるのは、bx rmが必ずしも状態を切り替えるわけではないということです。サムのBX記述には、「ARMコードとThumbコードの間の分岐」と記載されています。まるでそれを使っている親指が、常に腕のコードにあなたを連れて行くように。擬似コードは少し上手く描いていますが、レジスタ内のアドレスのlsbitは、親指または腕のコードに分岐しているかどうかを示します。親指の説明のPC擬似コードは誤解を招きます。 Thumb命令は16ビットで、PCは0x00、0x02、0x04などの時点で16ビット前に移動します。アームモードでは命令は32ビットで、PCは0x00、0x04、0x08などになります(ARM命令の分岐命令ブランチは、親指の分岐が< < 1、0,2,4,6、などをsigned_immedされるなど< < 2、0,4,8を、signed_immedれる)
あなたが混合モードプログラムを持っている場合、基本的には、使用したいです特にmov pc、lrの代わりにbx lrを返すときはBの代わりにBXを使います。したがって、親指と腕の両方の関数はbx lrを使用して復帰します。すべての4つのケースがカバーされ、腕を呼び出す腕、腕を親指、親指を腕と親指と呼びます。
cpsrのTビットに影響する命令を探したり、プログラムカウンタをどこかに分岐させるような方法でプログラムカウンタに影響を与えたりします。興味のあるファミリー/コア(ARM ARMを読んでいる場合)、armv4t、armv6、armv6などにも注意してください。特定のコアについて、TRM(Technical Reference Manual)を入手することをお勧めします同様に使用します。 ARM ARMは非常に汎用的であり、コアの数が増加するにつれて、ARM ARMでは特定の相違点が明確ではありません。あなたはTRMが必要です。
私はARM ARMの多くのリビジョンを持ち、すべてにバグ/エラーが含まれています。意図的であるかどうかわからないので、使用しているコアがどのように実際に動作しているかを知るためには、常にいくつかのハッキングが必要です。
私はその答えをより良く書くことができました。とにかく、短い答え:CPSRのTビットに影響を与える指示を探します。 –
- 1. 詳細レポートに自動的に切り替えます
- 2. マスター/詳細フローでフラグメントを切り替える
- 3. ゴールデングリッドシステムのグリッドを私に説明してもらえますか?
- 4. このColorBoxコードの詳細を説明してください
- 5. 2つに分割してリストを並べ替えるすっきりした方法はありますか?
- 6. UIViewControllerから別のUIViewControllerに切り替える方法は?
- 7. numpy.where()詳細、ステップバイステップの説明/例
- 8. Xcode 4.2のiOSの逆アセンブリをThumbからARMに切り替える方法は?
- 9. ピップからブリューに完全に切り替える方法
- 10. チュートリアルや書籍を探して、詳細を説明しますAndroidCameraとSurfaceView?
- 11. jQueryを使用してテーブル列を並べ替えて切り替えます
- 12. 子QMainWindowタイトルバーがMac OS Xで消えました(詳細説明を追加)
- 13. PHP CURLでPOSTからGETに切り替える方法
- 14. HttpURLConnectionからHttpClientに切り替える方法
- 15. ユーザーモードからカーネルモードに切り替える方法は?
- 16. Python:optparseからargparseに切り替える
- 17. MPAndroidChart-BarChart、以下は詳細な説明
- 18. スレッドを切り替える方法はありますか?
- 19. UIImagePickerController後ろから前のカメラからアニメーションに切り替える方法は?
- 20. 自分のアプリケーションからNFCを切り替える方法
- 21. 別のタブに切り替えると、挿入モードから通常モードに切り替わりますか?
- 22. 誰かがこのデコレータコードを私に説明してもらえますか?
- 23. リモートサービスからアプリケーション(APK)を起動して切り替える方法は?
- 24. AndroidアクティビティからMapActivityに切り替え
- 25. なぜADOからADO.NETに切り替えるのですか?
- 26. ナビゲーションコントローラのviewcontrollersの切り替え中にクラッシュしましたか?
- 27. 並べ替えの方法配列インデックスで並べ替えられたリスト
- 28. SSRSグループ、集約グループ詳細説明の後に
- 29. woocommerceオーダー明細の詳細テンプレートにカスタムフィールドを表示する方法は?
- 30. TestNGの@BeforeTestアノテーションのセマンティクスについて詳しく説明できますか?
なぜ知りたいですか? –
この宿題はありますか?また、あなたが書いた2行には、約15個のスペリングと文法上の誤りがあります。ここで皆さんが「詳細に説明する」ことを期待しているなら、少なくとも少し努力してください。 – Dan
これは宿題に関する質問だった可能性があります。それにもかかわらず興味深い質問です。 – viv