1

我需要计算 MMX 寄存器中的 4 个整数的总和。例如,我有这个 MMX 寄存器: 在此处输入图像描述 我想得到这个结果(我不介意它是在同一个寄存器中还是在普通寄存器中): 在此处输入图像描述

我想知道是否有执行该操作的指令。我在 Windows 中使用 x86 程序集。我的第一个猜测是将 41放入另一个 MMX 寄存器并调用PMADDWD,这样我最终得到 [X1+X2][X3+X4] 但我认为这很脏。

提前致谢。

4

1 回答 1

2

PMADDWD实际上是一种很好的求和方式 - 即使您通过使用 1 的被乘数来“浪费”乘法运算,您也可以免费获得扩展(解包)操作,因此您从 a 中获得了相当多的价值单指令。

于 2013-01-07T18:44:49.643 回答