求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

IMUL檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
  IMUL

IMUL是一個計算機函數,功能是將被乘數與乘數均作為有符號數, 它按照符號擴展方式擴展到目標操作數格式的長度。

簡介

此形式與 MUL 指令使用的形式完全相同。這裡,源操作數(位於通用寄存器或內存位置)乘以 AL、AX 或 EAX 寄存器(取決於操作數大小)中的值,乘積分別存儲到 AX、DX:AX 或 EDX:EAX 寄存器。對於此種形式,目標操作數(第一個操作數)乘以源操作數(第二個操作數)。目標操作數是通用寄存器,源操作數可以是立即數、通用寄存器或內存位置。乘積隨後存儲到目標操作數位置。此種形式需要一個目標操作數(第一個操作數)與兩個源操作數(第二個與第三個操作數)。這裡,第一個源操作數(可以是通用寄存器或內存位置)乘以第二個源操作數(立即數)。乘積隨後存儲到目標操作數(通用寄存器)。

評價

有效位進位到結果的上半部分時,CF 與 OF 標誌設置為 1。結果正好可以存儲到結果的下半部分時,清除 CF 與 OF 標誌。無論操作數是否有符號,乘積的下半部分都相同,所以雙操作數與三操作數形式也可以使用無符號操作數。不過,此時不能使用 CF 與 OF 標誌確定結果的上半部分是否非零Math.imul()方法用於計算兩個32位整數的乘積,它的結果也是32位的整數。JavaScript的Number類型同時包含了整數和浮點數,它沒有專門的整型和浮點型。因此,Math.imul()方法能提供類似C語言的整數相乘的功能。[1]

參考文獻

  1. IMUL搜狗