وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

PMADDWD

PMADDWD 

Usage:  PMADDWD    dest,src                        Modifies flags: None

Multiplies the individual signed words of the 'dest' by the corresponding signed words of the 'src', producing temporary signed, doubleword results. The adjacent doubleword results are then summed and stored in the 'dest' operand.

MMX Packed Multiply and Add


PMADDWD mm1,mm2/m64           ; 0F F5 /r             [PENT,MMX]

PMADDWD xmm1,xmm2/m128        ; 66 0F F5 /r     [WILLAMETTE,SSE2]


PMADDWD treats its two inputs as vectors of signed words. It multiplies corresponding elements of the two operands, giving doubleword results. These are then added together in pairs and stored in the destination operand.


The operation of this instruction is:

   dst[0-31]   := (dst[0-15] * src[0-15])

                               + (dst[16-31] * src[16-31]);

   dst[32-63]  := (dst[32-47] * src[32-47])

                               + (dst[48-63] * src[48-63]);

The following applies to the SSE version of the instruction:

   dst[64-95]  := (dst[64-79] * src[64-79])

                               + (dst[80-95] * src[80-95]);

   dst[96-127] := (dst[96-111] * src[96-111])

                               + (dst[112-127] * src[112-127]).

The 'src' operand can be an MMX technology register or a 64- bit memory location, or it can be an XMM register or a 128-bit memory location. The 'dest' operand can be an MMX technology register or an XMM register.


EXAMPLE:

pmaddwd Label xmm1