彙編裡面的除法優化就是乘以除數的倒數
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
彙編 div 除法指令
mov ax,10h 被除數為16位,儲存在ax mov dl,3 除數儲存在暫存器中,除數為8位 mov dl,ds 3 除數儲存在記憶體中,除數為8位 div dl 商儲存在al,餘數儲存在ah mov ax,4c00h int 21h code ends end start assume cs...
乘法除法反彙編
彙編乘法指令一般為mul,imul,如果在彙編中使用這些指令來進行乘法運算,會比較慢,一般要進行轉換。int fun 反彙編 push ecx 為區域性變數a分乙個空間 mov eax,dword ptr esp esp棧頂指標指向的就是剛剛壓入的ecx lea ecx,dword ptr eax ...
乘法 除法彙編指令總結
乘法指令的反彙編 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的冪相乘...