EFLAGSレジスタの未定義の第2ビットがデフォルトで1に設定されているのはなぜかと思います。 その他の未定義/予約ビットはすべて0に設定されています。これは特別な意味を持っていますか?EFLAGSビット1が常にセットされているのはなぜですか?
答えて
「予約済み」であり、「未定義」ではありません。おそらく、それは単に通常のアプリケーションに晒されていないいくつかの内部状態を反映します。
文書化されていない動作は、実際には「内部的にしか文書化されていない」ことを意味します。
「文書化されていない」動作はどこにありますか?そして、あなたが言ったことを言うようにする「内部的にしか書かれていない」ことについて、あなたは何を特定していますか? –
時々、これらは企業秘密です。例えば、GPUではそれが起こります。 – spraff
おそらく、このビットはデフォルト/互換性の設定が真と見なされるように予約されています。
予約ビットに割り当てられる値が重要な場合の例として、x86ページテーブルのNo-eXecuteビットを考慮してください。このビットはゼロの値で予約済みと定義されていたため、これをeXecute許可ビット(ソフトウェアの互換性を維持したまま)と呼ぶことはできませんでした。さらに、x86がページテーブルツリーをどのように使用するかによって、最後のアクセス許可はページテーブルのすべてのレベル(NXを除く)のアクセス許可設定のand
によって生成されます。これにより、各パーミッションビットは、少なくとも仮想メモリの最も制限的なセクションと同じくらい制限的になります。ただし、より限定的なアクセス許可としてNXが1の場合、NXは別の方法(and
の代わりにor
を使用)で処理する必要があります。
一貫した概念フレームワークを提供することは、メモリをより信頼できるものにします(少数のバグが生成され、特定の種類のバグがより明白になり、ドキュメントをチェックする必要性が低くなり、学習が容易になります)。予約ビットを1ビットとして提供することにより、合理的にデフォルトになる値は、一貫性のある簡単な名前と表現を持つことができます。
- 1. 格納できる最小値はバイト(8ビット)でビット(1ビット)ではないのはなぜですか?
- 2. なぜhasLayoutは常に-1ですか?
- 3. XML文書ファイルが常にロックされているのはなぜですか?
- 4. debug.getinfo(1)に 'name'が指定されていないのはなぜですか?
- 5. プログラムが接続されていない接続が常に5つあるのはなぜですか?
- 6. "(oddNumber And 1)= 1"がtrueに評価されるのはなぜですか?
- 7. この揮発性変数のアドレスが常に1になっているのはなぜですか?
- 8. プロセスが常にDDMSプロセスリストに表示されるのはなぜですか?
- 9. AJAXでは、XMLHttpRequestのresponseTextは常にタグが削除されていますが、なぜですか?
- 10. pom.xmlのmodelVersionが必要で、常に4.0.0に設定されているのはなぜですか?
- 11. テーブル行が1つしか更新されないのはなぜですか?
- 12. なぜ非常に多くのApacheプロセスが実行されていますか?
- 13. ソリューションを開くと、ユニットテストプロジェクトファイルが常にチェックアウトされるのはなぜですか?
- 14. なぜアウトラインビューのチェックボックスが1つしかクリックされていないときにチェックするのですか?
- 15. DelphiのアドインDLLでDebugHookが1に設定されていないのはなぜですか?
- 16. このC#コードは型保護されていないのですが、なぜこの他のビットが型保証されていますか?
- 17. なぜこのコードの-1を印刷するのですか?ビットフィールドが1に設定されていると、1になるはずです。
- 18. 私のアプリケーションが64ビット用にコンパイルされて以来、segfaultを取得するのはなぜですか?
- 19. BindingListCollectionViewが封印されているのはなぜですか?
- 20. mp3が圧縮されているのはなぜですか?
- 21. WebSocketsがマスクされているのはなぜですか?
- 22. Regex Groupが返されているのはなぜですか?
- 23. System.ComponentModel.DataAnnotations.DisplayAttributeが封印されているのはなぜですか?
- 24. QueryOverでSingleOrDefaultが非常に遅いのはなぜですか?
- 25. #light構文がF#で非常に優れている場合、なぜデフォルトではないのですか?
- 26. Integer.MAX_VALUE + 1がInteger.MAX_VALUEより小さいのはなぜですか?
- 27. ([1,0] == Trueの1)がFalseに評価されるのはなぜですか?
- 28. 非常に迅速にタップすると、UITableViewCell選択が描画されないのはなぜですか?
- 29. ddplyで「エラー:長さ(行)== 1がTRUEではない」と表示されるのはなぜですか?
- 30. "(1/6)*(66.900009-62.852596)"がゼロに評価されるのはなぜですか?
0には特別な意味がありますか?いいえ、歴史的な理由からちょっとしたことが起きただけの状態です。文書化されたステータスについてはhttp://en.wikipedia.org/wiki/FLAGS_registerを参照してください。 –