本帖最后由 笨来无一悟 于 2025-4-11 12:00 编辑
如何用最少的代码取出3个整数中最大的一个
https://bbs.125.la/forum.php?mod=viewthread&tid=14853251
(出处: 精易论坛)
CMOV指令 比 JCC指令 最少提速百分之25 流水线减少分支预测
看了一下之前的 三数 二数 和 数组 取最大最小 还有优化空间 于是优化了一下
|
三整最大 | 整数型 | | |
整参数一 | 整数型 | | | | 整参数二 | 整数型 | | | | 整参数三 | 整数型 | | | | 置入代码 ({ 139, 69, 8, 57, 69, 12, 15, 77, 69, 12, 57, 69, 16, 15, 77, 69, 16, 201, 194, 12, 0 })返回 (0 ) |
三整最小 | 整数型 | | |
整参数一 | 整数型 | | | | 整参数二 | 整数型 | | | | 整参数三 | 整数型 | | | | 置入代码 ({ 139, 69, 8, 59, 69, 12, 15, 77, 69, 12, 59, 69, 16, 15, 77, 69, 16, 201, 194, 12, 0 })返回 (0 ) 置入代码 ({ 139, 69, 8, 57, 69, 12, 15, 77, 69, 12, 201, 194, 8, 0 })返回 (0 ) 置入代码 ({ 139, 69, 8, 59, 69, 12, 15, 77, 69, 12, 201, 194, 8, 0 })返回 (0 ) 置入代码 ({ 139, 117, 8, 139, 54, 131, 198, 4, 139, 14, 133, 201, 116, 13, 139, 4, 142, 59, 4, 142, 15, 78, 4, 142, 73, 117, 246, 201, 194, 4, 0 })返回 (0 ) 置入代码 ({ 139, 117, 8, 139, 54, 131, 198, 4, 139, 14, 133, 201, 116, 13, 139, 4, 142, 59, 4, 142, 15, 77, 4, 142, 73, 117, 246, 201, 194, 4, 0 })返回 (0 )
其中 CMOVLE 改做 CMOVL CMOVGE 改做 CMOVG 也是一样的效果
来自群组: 热心网友 |