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. Pythonで@staticmethodのポイントは何ですか?
- 3. それでは、何がポイントですか?
- 4. AIDL - 何がポイントですか?
- 5. first2 ++のポイントは何ですか?
- 6. RxJS - オペレータのポイントは何ですか?
- 7. ASP.NET AJAXのポイントは何ですか?
- 8. OpenCLカーネルの__のポイントは何ですか?
- 9. Javascript:RegExp.compile()のポイントは何ですか?
- 10. MethodImplOptions.InternalCallのポイントは何ですか?
- 11. このコードのポイントは何ですか?
- 12. _MERGE_PROXYSTUBのポイントは何ですか?
- 13. browserstack.com APIのポイントは何ですか?
- 14. iter_swapのポイントは何ですか?
- 15. 大入力のポイントは何ですか?
- 16. Guzzle async promiseのポイントは何ですか?
- 17. SplittableRandomのポイントは何ですか?
- 18. インターフェイスのポイントは何ですか?
- 19. DICOM:SOPInstanceUIDタグのポイントは何ですか?
- 20. Vaadin:H2データベースのポイントは何ですか?
- 21. iPhone 8シミュレータのポイントは何ですか?
- 22. getlineのバッファのポイントは何ですか?
- 23. uWSGIのポイントは何ですか?
- 24. Luaのネストブラケットのポイントは何ですか?
- 25. ビルダーパターン:ディレクターのポイントは何ですか?
- 26. ストアドプロシージャのポイントは何ですか?
- 27. UrbanAirshipのポイントは何ですか?
- 28. カミソリビューエンジンのMasterLocationFormatsのポイントは何ですか?
- 29. Quineプログラムのポイントは何ですか?
- 30. OpenClipboard APIのポイントは何ですか?
「スタックに格納される唯一のレジスタはEDIです」 - その結論にどうやって到達しましたか? – interjay
どこにいるのか分かりません。 pushaとpushfは16ビットコードでpushadとpushfdは32ビットコードで使用します。 A46は12ビットです。 –
この質問は意味がありません。 EDIビットが真ではない、その部分の説明を与えてください。フラグは何の影響を受けませんか? 「ダブルフォーマット」とは何ですか?あなたは旗やEFLAGSの登録について話していますか?また、32ビットまたは16ビットコードですか? Etc. – Simon