我想知道爲什麼EFLAGS寄存器未定義的第二位默認設置爲1。 所有其他未定義/保留位都設置爲0.這是否有特殊含義?爲什麼EFLAGS位1始終設置?
回答
它是「保留」,而不是「未定義」。據推測它反映了一些內部狀態,它根本不會暴露於正常應用。
有時無證行爲確實意味着「僅內部記錄」。
行爲「無證」在哪裏?你知道什麼具體的事情「只有內部記錄」,會讓你說你說什麼? –
有時這些東西是商業祕密。例如,它在GPU中發生了很多。 – spraff
大概這個位被保留用於默認/兼容設置會被視爲真實的用途。
作爲分配給保留位的值可能很重要的示例,請考慮x86頁表中的No-eXecute位。由於該位被定義爲保留值爲零,因此無法將其稱爲eXecute權限位(同時保留軟件兼容性)。另外,隨着x86如何使用頁表樹,最終權限是由頁表中所有級別的權限設置and
生成的(NX除外);這使得每個權限位至少與虛擬內存中限制最嚴格的部分一樣具有限制性。但是,NX作爲更嚴格的權限1時,必須以不同的方式處理NX(使用or
而不是and
)。
提供一致的概念框架是基本的良好實踐,使內存更加可靠(生成的錯誤更少,某些類型的錯誤更明顯,並且更少需要檢查文檔)並且學習更容易。通過提供保留位爲1位,合理默認爲true的值可以具有一致,直接的名稱和表示形式。
- 1. 爲什麼53280 $ D020的高位始終設置(C64)
- 2. getItemViewType位置始終爲0
- 3. Android位置始終爲空
- 4. 位置始終爲空
- 5. (ASM)「設置位1」是什麼意思?
- 6. UpdateParameters始終設置爲0
- 7. webView.loading始終設置爲否
- 8. MotionEvent.getPointerCount()始終爲1
- 9. mysqli_num_rows始終爲1
- 10. 爲什麼@ 1.first_column的值始終爲0
- 11. 爲什麼我的urlConnection.getContentLength大小始終爲-1?
- 12. 爲什麼用$ addToSet更新返回始終爲1
- 13. 爲什麼我的新ID始終爲「1」
- 14. Yeoman安裝位置始終設置爲桌面
- 15. Jena - MinCardinalityRestriction爲什麼設置「1事」?
- 16. rowindex始終從零開始......爲什麼?
- 17. 爲什麼位圖始終爲空,從圖像字節數組?
- 18. 爲什麼0.9不會重複始終等於1
- 19. 爲什麼導出的行名在R中始終偏離1?
- 20. Android位置始終爲空NETWORK_PROVIDER和GPS_PROVIDER
- 21. 當前位置始終爲空
- 22. 始終保持位置爲中心
- 23. Android ExpandableListView組位置始終爲0
- 24. WatchOS2上的位置始終爲零
- 25. 節點的位置始終爲空。 Cocos3d
- 26. AutoCompleteTextView OnItemClick位置始終爲「0」
- 27. QWinWidget的位置始終爲0(零)
- 28. Jbpm ProcessDefinition始終爲-1
- 29. HttpWebResponse contentLength始終爲-1
- 30. 層概率始終爲1
0有特殊含義嗎?不,它僅僅是出於某種歷史原因。有關記錄的狀態,請參閱http://en.wikipedia.org/wiki/FLAGS_register。 –