NASM 2.05 based x86 Instruction Reference[ch229]
A.5.205 PAVGB PAVGW: Average Packed Integers PAVGB mm1,mm2/m64 ; 0F E0 /r [KATMAI,MMX] PAVGW mm1,mm2/m64 ; 0F E3 /r [KATMAI,MMX,SM] PAVGB xmm1,xmm2/m128 ; 66 0F E0 /r [WILLAMETTE,SSE2] PAVGW xmm1,xmm2/m128 ; 66 0F E3 /r [WILLAMETTE,SSE2] PAVGB and PAVGW add the unsigned data elements of the source operand to the unsigned data elements of the destination register, then adds 1 to the temporary results. The results of the add are then each independently right-shifted by one bit position. The high order bits of each element are filled with the carry bits of the corresponding sum. - PAVGB operates on packed unsigned bytes, and - PAVGW operates on packed unsigned words.