私は単純な武器の例をいくつか解体することを覚えています。地元の人々はstack
ではなくregisters
に格納されているようです。これは常に腕に当てはまりますか?Arm Cortexアーキテクチャのローカル変数は、レジスタまたはスタックに格納されていますか?
-2
A
答えて
4
3
ローカル変数の格納は、具体的にプロセッサアーキテクチャではなくコンパイラにとって重要です。さらに、コンパイラの最適化が有効になっているときは、レジスタ記憶域を使用する可能性が高くなります。
すべてのコンパイラはどのアーキテクチャでもこれを実行する可能性がありますが、x86と比べてARMはより大きな直交性の高いレジスタセットを持っているため、おそらくARMコードのレジスタ記憶域を観察する可能性が高くなります。
もちろん、多数の変数があり、大きな集計タイプの場合でもスタックは引き続き使用されます。オプティマイザは、最適なパフォーマンスを得るために、コードフローを分析し、どの変数がレジスタに最適に格納されるかを選択します。
関連する問題
- 1. パラメータがレジスタに格納され、x86-64アセンブリのスタックに格納されないのはなぜですか?
- 2. ASMインタープリタ:ローカル変数はどのように格納されていますか?
- 3. スレッドのスタックには何が格納されていますか?
- 4. スコープはスタックに格納されていますか?
- 5. オブジェクトはスタックに格納されていますか?
- 6. ヒープまたはスタックに参照が格納されていますか?
- 7. Java-変数名または識別子はどこに格納されますか?スタックまたはヒープ?
- 8. CPUレジスタに変数を格納する
- 9. 変数と参照はヒープまたはスタックにどこに格納されますか?
- 10. アクセス番号の人は別のレジスタに格納されています
- 11. GDBでスタックに格納された変数を見る方法
- 12. 静的ストレージに格納されている場合、Methodローカル変数はガベージコレクトされますか?
- 13. C#7.0で参照によって返される値は、スタックまたはヒープに格納されますか?
- 14. 変数はSQLサーバーにどこに格納されますか?
- 15. サイトに機密データがローカルに格納されています
- 16. unboundLocalError:ローカル変数 'arm'が代入の前に参照されていますか?
- 17. メンバ関数はどこに格納されていますか?
- 18. Javascriptのグローバル変数はどのオブジェクトに格納されていますか?
- 19. DLLのグローバル変数はどこに格納されていますか?
- 20. メモリの静的変数はどこに格納されていますか?
- 21. これらのレジスタはなぜスタックにプッシュされますか?
- 22. インクリメント変数を配列またはスタックに格納する方法
- 23. レジスタに格納される数値の大きさ
- 24. 変数をローカルに格納する
- 25. クロージャがローカル変数を格納していません
- 26. スタックの破損。関数呼び出しの間にレジスタに格納された変数に何が起こるはずですか?
- 27. グローバルlet変数はどこに格納されていますか?
- 28. 揮発性変数はどこに格納されていますか?
- 29. How?クローズオーバー変数はどこに格納されていますか?
- 30. 普遍的な変数はどこに格納されていますか?
地元の人々は何百人ですか?ありそうもないと思われる.... –
普通のコンパイラとABIがあれば、汎用レジスタを持っているものは普通だ。それはちょっとのポイントです... – Notlikethat
あなたは変数のアドレスを取る必要がある場合? @EugeneSh。 –