彙編除法優化

2021-05-26 02:21:31 字數 376 閱讀 5313

彙編裡面的除法優化就是乘以除數的倒數

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的冪相乘...