この命令は正確に何をしますか?特定の数値の倍数でデータを整列させようとしますが、なぜこれを行う必要があるのでしょうか?他のアセンブラには同等の命令がありますか?MIPSの 'align'命令
答えて
通常、パフォーマンスを向上させるためにデータを整列します。ほとんどのプロセッサでは、特定のバイト境界にアクセスしていないときにメモリアクセスに多少のペナルティがあります。他のアセンブラーの場合、これにはある種のものがよくあります。pseudo-op.align
です。ほとんどのコンパイラは、データ構造を整列します(ただし、デバッグ目的では無効にできます)。
この詳細についてはWikipedia entryを参照してください。
あなたが整列していないメモリセルにアクセスしようとすると非エミュレートMIPSシステムでもクラッシュする場合があるので注意してください(hereとhereを参照してください)。
他のアセンブラには同等の指示がありますか?
MASMは、ALIGNディレクティブを持っていますhttp://msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx
これは、2つのn乗にすべてを揃えます。 exampeのために、指示
その使用方法についてはに変換されます。そのない命令、そのディレクティブ:
MIPS32命令は32ビット長で、常にあります。したがって、各命令は単語境界で開始する必要があります。コードの開始前に.alignディレクティブを追加すると、32ビットに整列されます。これには多くの利点があります。命令のフェッチには1つのメモリアクセスしかかからず、おそらく命令キャッシュでは有益なものになるでしょう。
ダブルフロートをスタックに保管するのはどうですか? 8バイトアライメントが必要ですか? –
はい、倍精度は64ビットに整列します – Tom
- 1. MIPSシフト命令
- 2. アセンブリMIPS TAl命令
- 3. MIPS分岐命令
- 4. MIPSの命令の質問
- 5. ジャンプ命令のMIPS範囲
- 6. MIPS "la"疑似命令
- 7. MIPSのジャンプと分岐命令の範囲
- 8. MIPSの直接命令ori/addi/luiなどが必要です。
- 9. MIPSコードで実行された命令の総数?
- 10. asm命令を使用してMIPS CPUレジスタを読み取る
- 11. rtはMIPS命令フォーマットで何を表していますか?
- 12. 命令レベルプロファイリング:命令ポインタの意味?
- 13. mipsには32ビットのアドレスと32ビットの命令がありますか?
- 14. MIPS分岐命令のオフセットは符号拡張されていますか?
- 15. デコード68k命令
- 16. LEA命令?
- 17. ドッカーファイルONBUILD命令
- 18. ストリング命令
- 19. ARMのプリフェッチ命令
- 20. SIGILL(BL命令の)
- 21. デコード命令のパターン
- 22. スカラのバイトコードで不要なロード命令とストア命令
- 23. 同じアセンブリ命令が、別のマシン命令
- 24. アセンブラSTRB命令は
- 25. アームサムモード4バイト命令
- 26. ASP.Net実行命令
- 27. アセンブリJZ命令CMP
- 28. SSE命令:Byte + Short
- 29. WCF命令的バインド
- 30. 命令ポインタとプログラムカウンタ?
外部リンクの追加説明をありがとう! –