-
-
[分享]汇编优化几种方式。
-
发表于:
2010-8-1 10:40
8567
-
最近从书中看到几中汇编优化方式,拿出分享分享。
主要目的是提高运行效率,消除跳转指令。
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
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)