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. 查找平面图(几何形状)的边界(边界)