乘法指令的反汇编
a*5:imul eax,dword ptr [a],5 ==>(当变量与不是2的幂的数相乘时,三变量)
a*b :mov eax,dword ptr [a]
imul eax,dword ptr [b] ==>(当两个都是变量相乘时,两变量)
a*8 :mov eax,dword ptr [a] ==>(当变量与2的幂相乘时(2^3=8))
shl eax,3 ==>左移操作
除法指令的反汇编
a/4:(和2的幂(2^2=4)进行做除法,4在右边,用sar)
mov eax,dword ptr [a]
cdq
and edx,3 ==>3是由4-1得到的,如果是a/8,则是8-1=7;
add eax,edx
sar eax,2 ==>右移操作
4/b:(和2的幂(2^2=4)进行做除法,4在左边)
mov eax,4
cdq
idiv eax,dword ptr [b]
a/b:(两个变量相除)
mov eax,dword ptr [a]
cdq
idiv eax,dword ptr [b]
a/5:(和非2的幂相除)
mov eax,dword ptr [a]
cdq
mov ecx,5
idiv eax,ecx