匯編語言乘指令 MUL、IMUL的具體使用
MUL: 無符號乘
==================================================
;影響 OF、CF 標(biāo)志位
;指令格式:
;MUL r/m ;參數(shù)是乘數(shù)
;如果參數(shù)是 r8/m8, 將把 AL 做乘數(shù), 結(jié)果放在 AX
;如果參數(shù)是 r16/m16, 將把 AX 做乘數(shù), 結(jié)果放在 EAX
;如果參數(shù)是 r32/m32, 將把 EAX 做乘數(shù), 結(jié)果放在 EDX:EAX
當(dāng)乘積的高半部分(AH、DX、EDX、RDX)中存有結(jié)果的有效數(shù)字,則CF=OF=1,否則CF=OF=0。
=======================================================
IMUL: 有符號乘
=======================================================
;影響 OF、CF 標(biāo)志位
;第一種指令格式:
;IMUL r/m ;單操作數(shù)
;如果參數(shù)是 r8/m8, 將把 AL 做乘數(shù), 結(jié)果放在 AX
;如果參數(shù)是 r16/m16, 將把 AX 做乘數(shù), 結(jié)果放在 EAX
;如果參數(shù)是 r32/m32, 將把 EAX 做乘數(shù), 結(jié)果放在 EDX:EAX
;以上這些都是和 MUL 一樣的, 只是運算結(jié)果有時一樣、有時不一樣.
;IMUL 還有另外兩種指令格式:
;IMUL r16/r32, r16/r32/m16/m32/i ;雙操作數(shù), (1)*(2) -> (1)
;IMUL r16/r32, r16/r32/m16/m32, i ;三操作數(shù), (2)*(3) -> (1)
;其中常數(shù) i 的位數(shù)可以 <= 但不能 > 其他操作數(shù)
=======================================================
簡單應(yīng)用
=================================================
imul edx, ebx ;edx=edx*ebx
imul edx, ebx,8 ;edx=ebx*8
一,目的數(shù)為16或32寄存器
二,操作數(shù)長度相等
三,三操作數(shù)依次為目的,源,立即數(shù)
四,與單操作數(shù)不溢出不同,可能產(chǎn)生溢出
就這樣簡要述說了...
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
匯編語言功能實現(xiàn)數(shù)據(jù)復(fù)制實例詳解
這篇文章主要為大家介紹了匯編語言功能實現(xiàn)數(shù)據(jù)復(fù)制的實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11從匯編代碼開始全面解析synchronized還原最真實的偏向鎖
這篇文章主要為大家介紹了從模板解釋器匯編源碼開始分析還原最真實的偏向鎖實現(xiàn),解釋monitorenter字節(jié)碼命令的方法開始,從匯編代碼開始全面解析synchronized2022-02-02