IA-32インテル命令セットリファレンスSTOS/STOSB/STOSW/STOSDでは、命令stos m32
とstosd
の違いは何ですか?その説明は同じですか?
m32
の機能は何ですか?命令を使用するときは、eax
とes
、edi
を設定する必要があります。m32
オペランドは有効ですか?アセンブリ: `stos m32`と` stosd`ニーモニックの違いは何ですか?
2
A
答えて
2
形式STOS m32形式とSTOSD形式は、同じ命令を表現する2つの異なる方法です。新しいSIMD(SSE、AVX、etc ...)命令の外では、ほとんどの命令ニーモニックには、実行する操作のサイズを示す接尾辞がありません。たとえば、INCDまたはMOVW命令はありません。代わりに、オペランドのサイズによって操作のサイズが決まります。 STOS m32フォームを使用すると、この命令にこの命令を一致させることができます。 DDに
array DW 30 DUP (?)
mov ecx, LENGTH array
mov edi, OFFSET array
mov eax, 1
rep stos array
変更DWとコードが1秒とのDWORDのアレイを充填する:STOS命令のサイズは、シンボルのタイプ(サイズ)に依存する
はMASMでは、これは次のようなコードを可能にします代わりにWORDの配列。メモリオペランドのサイズのみが使用されることに注意してください。命令はEDIによって与えられたアドレスにまだ書き込む。
STOSには適用されませんが、その他の文字列命令のメモリオペランド形式では、デフォルトのDSセグメントを上書きできます。 (STOS命令は、上書きできないESセグメントを使用します)。例えば、次のようにすることができます。
rep outs dx, WORD PTR fs:[esi]
+2
既定のセグメントを上書きできるだけでなく、サイズをプレフィックス '67'で指定して、 'stos dword [es:di]'を32ビットモードで実行します。 – Ruslan
関連する問題
- 1. Javaのニーモニックとは何ですか?
- 2. アセンブリのタイプ - 違いは何ですか
- 3. -m32と-m64の違いは何ですか?gccのオプションには何もありません。
- 4. Macでのアセンブリとlinuxでのアセンブリの違いは何ですか?
- 5. ARMアセンブリ - v1とa1レジスタの違いは何ですか?
- 6. WIFEXITED、WEXITSTATUSなどの「W」のニーモニックとは何ですか?
- 7. GCCインラインアセンブリエラー:いいえ、そのような命令: `stosdは」
- 8. ARMv6アセンブリの= label(等号)と[label](角かっこ)の違いは何ですか?
- 9. アセンブリを64からm32にコンパイルするldエラー
- 10. x86-32アセンブリの "lea eax、[ebx + eax]"と "add eax、ebx"の違いは何ですか?
- 11. C#の内部クラスとパブリッククラスの違いは何ですか?
- 12. $と$$の違いは何ですか?
- 13. `##`と `hashCode`の違いは何ですか?
- 14. typedefとの違いは何ですか?
- 15. NodeJS:「./ ..」と「..」の違いは何ですか?
- 16. {}())と{})の違いは何ですか?
- 17. `&`と `ref`の違いは何ですか?
- 18. `==`と `is`の違いは何ですか?
- 19. difftimeと ' - 'の違いは何ですか?
- 20. #{} $ {}と%{}の違いは何ですか?
- 21. ⊕と+の違いは何ですか?
- 22. アペンダーと〜の違いは何ですか?
- 23. "./"と "../"の違いは何ですか?
- 24. "$^N"と "$ +"の違いは何ですか?
- 25. %Qと%{}の違いは何ですか?
- 26. バックスティックと$()の違いは何ですか?
- 27. A`と ``の違いは何ですか[:] `
- 28. ルーピングの際にMS-DebugとTASMの違いは何ですか?
- 29. Java:ニーモニックとUnicode
- 30. WebアプリケーションとWebサイトの作成の違いは何ですか?
STOSをメモリオペランドで使用すると、**サイズ** STOSB、STOSW、STOSDとしてエンコードするかどうかを決定するためのメモリオペランド(バイト、ワード、ワード) –
次に、 'm32'オペランドが使用されているかどうかにかかわらず、それは単にオペランドのメモリサイズを決定するために使用されているので、サイズが正しい限り、ランダムにm32オペランドを選択できます。 @MichaelPetch – zhenguoli
これはサイズ専用です。それが指していることは無視されます。私が知っているほとんどの開発者は、STOSB、STOSW、STOSDを使用します。 _MASM_を使用する場合は例外です。その環境で、変数を宣言すると、MASMは変数の型を追跡します。結果は同じですが、サイズだけが使用されます。 –