乘法、除法汇编指令总结

乘法指令的反汇编

a*5imul 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:(和22^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:(和22^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

 

 

你可能感兴趣的:(乘法、除法汇编指令总结)