Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要计算 MMX 寄存器中的 4 个整数的总和。例如,我有这个 MMX 寄存器: 我想得到这个结果(我不介意它是在同一个寄存器中还是在普通寄存器中):
我想知道是否有执行该操作的指令。我在 Windows 中使用 x86 程序集。我的第一个猜测是将 41放入另一个 MMX 寄存器并调用PMADDWD,这样我最终得到 [X1+X2][X3+X4] 但我认为这很脏。
1
PMADDWD
提前致谢。
PMADDWD实际上是一种很好的求和方式 - 即使您通过使用 1 的被乘数来“浪费”乘法运算,您也可以免费获得扩展(解包)操作,因此您从 a 中获得了相当多的价值单指令。