汇编里面的除法优化就是乘以除数的倒数
a/11
汇编代码:
mov eax,2E8BA2E9
imul ecx
sar edx,1
;edx中存放的是乘法运算的高位双字节,即相当于a*2E8BA2E9右移了32位,sar再移位1位,
;edx=(a*2E8BA2E9)>>(32+1)
=a*0.090909090940840542316436767
=a/11
;这边只考虑高位是因为低位右移都舍去了
mov ecx,edx
shr ecx,1F
;ecx右移31位,也就是取最高位
add edx,ecx
;负数加1
~~