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

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搜狗