彙編中除法div idiv 學習

2022-03-31 09:13:23 字數 578 閱讀 4643

div (unsigned divide) 無符號數除法

格式:div src

執行的操作:

位元組操作:16位被除數在ax,8位除數為源運算元,結果的8位商在al中,8位餘數在ah中。表示為

(al)<-(ax)/(src) 的商

(ah) <-(ax)/(src) 的餘數

字操作:32位被除數放在dx,ax中。其中dx為高位字,16位除數為源運算元,結果的16位端在ax中,16位餘數在dx中。表示為

(ax)<-(dx,ax)/(src) 的商

(dx)<-(dx,ax)/(src) 的餘數

雙字操作:64位被除數在edx,eax中,其中edx為高位雙字,32位除數為源運算元,結果的32位商在eax中,32位餘數在edx中,表示為

(eax)<-(edx,eax)/(src) 的商

(edx)<-(edx,eax)/(src) 的餘數。

商和餘數均為無符號數。

idiv 帶符號除法指令

格式:idiv src

執行的操作:與div相同,但運算元必須是帶符號的數,商和餘數也都是帶符號的數,且餘數的符號和被除數的符號相同

彙編除法優化

彙編裡面的除法優化就是乘以除數的倒數 a 11 彙編 mov eax,2e8ba2e9 imul ecx sar edx,1 edx中存放的是乘法運算的高位雙位元組,即相當於a 2e8ba2e9右移了32位,sar再移位1位,edx a 2e8ba2e9 32 1 a 0.0909090909408...

彙編 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 ...