1
A
回答
1
idiv
的分紅輸入(連接rdx:rax
)是輸出和除數操作數的兩倍寬。所以如果除數不夠大,結果很容易失效。
雖然這很少發生在實踐中。使用cltq
(AT & T助記符),又稱cdq
/cqo
(英特爾/ NASM助記符)將rax
簡單地簽名擴展爲rdx
是很常見的,所以這通常不會出現。 128b股息投入只會出現在高精度的情況下。 (編譯器當然更喜歡使用64位64位操作數的128乘64位,以便輕鬆支持除數不適合32位的情況,32位和16位操作數也是如此,這可能會出現在32位處理器中的int64_t/int32_t
,模式,編譯器會知道升級後的32位變量在32位上面是全零的,可以直接做一個idiv
,除非結果不符合32b ......)
Intel insn ref manual(請參閱x86標記wiki中的鏈接)註釋:「溢出用#DE(除錯)異常而不是用CF標誌指示。」 IDK爲什麼做出這樣的選擇,而不是僅僅通過零或其他東西來劃分錯誤。
相關問題
- 1. Astar邊界檢查
- 2. __builtin_expected使用邊界檢查
- 3. 自動邊界檢查?
- 4. ArgumentOutOfRangeException儘管邊界檢查
- 5. OpenGL檢查屏幕邊界
- 6. Vhdl矢量邊界檢查
- 7. 運行沒有數組邊界的邊界檢查,Cast檢查等
- 8. 邊界檢測
- 9. 邊界檢測
- 10. Haskell數組的靜態邊界檢查
- 11. gcc的優化影響邊界檢查
- 12. 檢查是否FLOAT3通過邊界
- 13. 遞歸洪水填充 - 檢查邊界
- 14. 更好的檢查邊界的方法
- 15. 簡化的Java列表邊界檢查
- 16. 檢查屏幕邊界在VGA圖形
- 17. 檢查XNA中精靈的邊界?
- 18. Java邊界檢查優化示例
- 19. CIL和陣列邊界檢查
- 20. 消除Haskell數組邊界檢查有界類型?
- 21. 檢查給定點是否位於圓的(未)有界邊/邊界上(CGAL)
- 22. Google地圖檢查地圖邊界是否存在圓圈邊界
- 23. 的Python:檢查陣列的列是邊界內,如果沒有邊界
- 24. JAVA邊界框/ Collison檢測
- 25. OpenCV檢測圖像邊界
- 26. Fabric.js畫布邊界檢測
- 27. 邊界檢測紙張opencv
- 28. 查找子串的邊界
- 29. 優化邊界框查詢
- 30. 查找平面圖(幾何形狀)的邊界(邊界)