-
-
[分享]汇编优化几种方式。
-
发表于:
2010-8-1 10:40
8568
-
最近从书中看到几中汇编优化方式,拿出分享分享。
主要目的是提高运行效率,消除跳转指令。
1.求有符号32位整数的绝对值。
逻辑: if (eax<0) eax=-eax
cdq
xor eax, edx
sub eax, edx
这段指令之所以可以正常工作,基于这个一个事实
neg eax 等价于 not eax; inc eax
而 not eax 又等价于 xor eax, -1
2.取两个数字中较小的一个
逻辑: if (ebx>eax) ebx=eax
无符号整数版本
sub eax, ebx
sbb edx, edx
and edx, eax
add ebx, edx
有符号版本
sub eax, ebx
cdq
and edx, eax
add ebx, edx
3.根据条件来选择赋值
逻辑: edx=(eax<0)?ebx:ecx
cdq
xor ebx, ecx
and edx, ebx
xor edx, ecx
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!