This page was made by Asbjørn Leth Vonsild ( alv@imada.ou.dk) and Jesper Pedersen ( jews@imada.ou.dk).
Please send any comments, questions and ideas to us.
We hope that you find this page useful !
| Name | Regs | Opcode | Description |
|---|---|---|---|
| PADDB | register, memory/register | 0F FC mod-rm | Add with wrap-around on byte |
| PADDW | register, memory/register | 0F FD mod-rm | Add with wrap-around on word |
| PADDD | register, memory/register | 0F FE mod-rm | Add with wrap-around on doubleword |
| PADDSB | register, memory/register | 0F EC mod-rm | Add signed with saturation on byte |
| PADDSW | register, memory/register | 0F ED mod-rm | Add signed with saturation on word |
| PADDUSB | register, memory/register | 0F DC mod-rm | Add unsigned with saturation on byte |
| PADDUSW | register, memory/register | 0F DD mod-rm | Add unsigned with saturation on word |
| PSUBB | register, memory/register | 0F F8 mod-rm | Subtraction with wrap-around on byte |
| PSUBW | register, memory/register | 0F F9 mod-rm | Subtraction with wrap-around on word |
| PSUBD | register, memory/register | 0F FA mod-rm | Subtraction with wrap-around on doubleword |
| PSUBSB | register, memory/register | 0F E8 mod-rm | Subtract signed with saturation on byte |
| PSUBSW | register, memory/register | 0F E9 mod-rm | Subtract signed with saturation on word |
| PSUBUSB | register, memory/register | 0F D8 mod-rm | Subtract unsigned with saturation on byte |
| PSUBUSW | register, memory/register | 0F D9 mod-rm | Subtract unsigned with saturation on word |
| PMULHW | register, memory/register | 0F E5 mod-rm | Packed multiply high on words |
| PMULLW | register, memory/register | 0F D5 mod-rm | Packed multiply low on words |
| PMADDWD | register, memory/register | 0F F5 mod-rm | Packed multiply on words and add resulting pairs |
| Name | Regs | Opcode | Description |
|---|---|---|---|
| PCMPEQB | register, memory/register | 0F 74 mod-rm, | Packed compare for equality byte |
| PCMPEQW | register, memory/register | 0F 75 mod-rm | Packed compare for equality word |
| PCMPEQD | register, memory/register | 0F 76 mod-rm | Packed compare for equality doubleword |
| PCMPGTB | register, memory/register | 0F 64 mod-rm | Packed compare greater than byte |
| PCMPGTW | register, memory/register | 0F 65 mod-rm | Packed compare greater than word |
| PCMPGTD | register, memory/register | 0F 66 mod-rm | Packed compare greater than doubleword |
| Name | Regs | Opcode | Description |
|---|---|---|---|
| PACKUSWB | register, memory/register | 0F 67 mod-rm | Pack words into bytes (unsigned with saturation) |
| PACKSSWB | register, memory/register | 0F 63 mod-rm | Pack words into bytes (signed with saturation) |
| PACKSSDW | register, memory/register | 0F 6B mod-rm | Pack doublewords into words (signed with saturation) |
| PUNPCKHBW | register, memory/register | 0F 68 mod-rm | Unpack (interleave) high-order bytes from MMX TM register |
| PUNPCKHWD | register, memory/register | 0F 69 mod-rm | Unpack (interleave) high-order words from MMX TM register |
| PUNPCKHDQ | register, memory/register | 0F 6A mod-rm | Unpack (interleave) high-order doublewords from MMX TM register |
| PUNPCKLBW | register, memory/register | 0F 60 mod-rm | Unpack (interleave) low-order bytes from MMX register |
| PUNPCKLWD | register, memory/register | 0F 61 mod-rm | Unpack (interleave) low-order words from MMX register |
| PUNPCKLDQ | register, memory/register | 0F 62 mod-rm | Unpack (interleave) low-order doublewords from MMX register |
| Name | Regs | Opcode | Description |
|---|---|---|---|
| PAND | register, memory/register | 0F DB mod-rm | Bitwise AND |
| PANDN | register, memory/register | 0F DF mod-rm | Bitwise AND NOT |
| POR | register, memory/register | 0F EB mod-rm | Bitwise OR |
| PXOR | register, memory/register | 0F EF mod-rm | Bitwise XOR |
| Name | Regs | Opcode | Description |
|---|---|---|---|
| PSLLW | register, memory/register | 0F F1 mod-rm | Packed shift left logical word by amount specified in MMX register or by immediate value |
| PSLLD | register, memory/register | 0F F2 mod-rm, [sib] | Packed shift left logical doubleword by amount specified in MMX register or by immediate value |
| PSLLQ | register, memory/register | 0F F3 mod-rm | Packed shift left logical quadword by amount specified in MMX register or by immediate value |
| PSRLW | register, memory/register | 0F D1 mod-rm | Packed shift right logical word by amount specified in MMX register or by immediate value |
| PSRLD | register, memory/register | 0F D2 mod-rm | Packed shift right logical doubleword by amount specified in MMX register or by immediate value |
| PSRLQ | register, memory/register | 0F D3 mod-rm | Packed shift right logical quadword by amount specified in MMX register or by immediate value |
| PSRAW | register, memory/register | 0F E1 mod-rm | Packed shift right arithmetic word by amount specified in MMX register or by immediate value |
| PSRAD | register, memory/register | 0F E2 mod-rm | Packed shift right arithmetic doubleword by amount specified in MMX register or by immediate value |
| PSHIMW* | register, immediate | 0F 71 mod-rm, imm | |
| PSHIMD* | register, immediate | 0F 72 mod-rm, imm | |
| PSHIMQ* | register, immediate | 0F 73 mod-rm, imm |
| Name | Regs | Opcode | Description |
|---|---|---|---|
| MOVD | register, memory/iregister | 0F 6E mod-rm | Move doubleword to MMX register or from MMX register |
| MOVD | memory/iregister, register | 0F 7E mod-rm | Move doubleword to MMX register or from MMX register |
| MOVQ | register, memory/register | 0F 6F mod-rm | Move quadword to MMX register or from MMX register |
| MOVQ | memory/register, register | 0F 7F mod-rm | Move quadword to MMX register or from MMX register |
| Name | Regs | Opcode | Description |
|---|---|---|---|
| EMMS | 0F 77 | Empty MMX state |
Back to Processor Information : Intel