pushadは32ビットレジスタをスタックにプッシュしますが、最終的にスタックに格納されるレジスタはEDIだけです。フラグの値は影響を受けませんので、押しボタンを使用するポイントは何ですか?さらに、私はpushfdがすべてのフラグ値をダブルフォーマットでプッシュすることを知っています。フラグの値が通常0または1の場合、pushfd操作は00000A46などの値をスタックにどのようにプッシュしますか?PushfdとPushad:ポイントは何ですか?
-5
A
答えて
19
...最終的にスタックに格納されるレジスタはEDIだけです。
いいえPUSHAD命令は常に全て 8汎用レジスタスタックにプッシュします。単一PUSHAD命令は、書き込みにequivilentある:
Push EAX
Push ECX
Push EDX
Push EBX
Push ESP
Push EBP
Push ESI
Push EDI
POPADは、このように全てのレジスタ値を復元する、逆順でバックスタックから値をポップ。
PUSHADとPOPADは、各レジスタを順番にPUSHとPOPすることなく、汎用レジスタの保存と復元を簡単に実行するのに便利です。
同様に、PUSHFDとPOPFDは、EFLAGSレジスタの保存と復元に使用されます。通常のプログラムではあまり使用されていませんが、(たとえば)プロセスコンテキストスイッチが実行されたとき(またはフラグレジスタの値を復元する必要がある場合など)に役立ちます。
pushfd操作は、00000A46などの値をスタックにどのようにプッシュしますか?
データがどのように解釈されるかだけです。 EFLAGSレジスタは32ビットのセットです。ビットを4つの8つのグループ(8 * 4 = 32)に分割する場合は、各4ビットチャンクを16進文字(0..9、A〜F)にマップできます。同様に、16進数の値を一連のビットに変換することができます。
00000A46 = 0000(0)0000(0)0000(0)0000(0)0000(0)1010(A)0100(4)0110 (6)
これらは、EFLAGSレジスタに格納されたビットの値です。
関連する問題
- 1. XMLHttpRequest()とActiveXObject( "Microsoft.XMLHTTP") - 何がポイントですか?
- 2. それでは、何がポイントですか?
- 3. AIDL - 何がポイントですか?
- 4. DICOM:SOPInstanceUIDタグのポイントは何ですか?
- 5. Rubyの@@ double_at_variableのポイントは何ですか?
- 6. パディングのポイントは何ですか?
- 7. iOSのナビゲーションツールバーのポイントは何ですか?
- 8. Zend_Exceptionのポイントは何ですか?
- 9. このコードのポイントは何ですか?
- 10. browserstack.com APIのポイントは何ですか?
- 11. Guzzle async promiseのポイントは何ですか?
- 12. _MERGE_PROXYSTUBのポイントは何ですか?
- 13. 大入力のポイントは何ですか?
- 14. バザールのタグのポイントは何ですか?
- 15. Javascript:RegExp.compile()のポイントは何ですか?
- 16. EC2のインスタンスストレージのポイントは何ですか?
- 17. ストアドプロシージャのポイントは何ですか?
- 18. os.errorのポイントは何ですか?
- 19. ORゲートのポイントは何ですか?
- 20. Python eggファイルのポイントは何ですか?
- 21. ASP.NET AJAXのポイントは何ですか?
- 22. MethodImplOptions.InternalCallのポイントは何ですか?
- 23. document.defaultViewのポイントは何ですか?
- 24. ビルダーパターン:ディレクターのポイントは何ですか?
- 25. 豆のポイントは何ですか?
- 26. UrbanAirshipのポイントは何ですか?
- 27. System.IO.dllのポイントは何ですか?
- 28. Luaのネストブラケットのポイントは何ですか?
- 29. iter_swapのポイントは何ですか?
- 30. GC.AddMemoryPressureとアンマネージドリソースを使用するポイントは何ですか?
「スタックに格納される唯一のレジスタはEDIです」 - その結論にどうやって到達しましたか? – interjay
どこにいるのか分かりません。 pushaとpushfは16ビットコードでpushadとpushfdは32ビットコードで使用します。 A46は12ビットです。 –
この質問は意味がありません。 EDIビットが真ではない、その部分の説明を与えてください。フラグは何の影響を受けませんか? 「ダブルフォーマット」とは何ですか?あなたは旗やEFLAGSの登録について話していますか?また、32ビットまたは16ビットコードですか? Etc. – Simon