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