Opcode PAVEB


CPU: Cyrix with Extended MMX Instruction Set
Type of Instruction: User

Instruction: PAVEB dest, src

Description:
dest[7..0] <- (dest[7..0] + src[7..0]) >> 1
dest[15..8] <- (dest[15..8] + src[15..8]) >> 1
dest[23..16] <- (dest[23..16] + src[23..16]) >> 1
dest[31..24] <- (dest[31..24] + src[31..24]) >> 1
dest[39..32] <- (dest[39..32] + src[39..32]) >> 1
dest[47..40] <- (dest[47..40] + src[47..40]) >> 1
dest[55..48] <- (dest[55..48] + src[55..48]) >> 1
dest[63..56] <- (dest[63..56] + src[63..56]) >> 1

Notes: The PAVEB insruction calculates the average of the unsigned
bytes of the source operand and the unsigned bytes of the destination
operand and writes the result to the MMX register. The PAVEB
instruction cannot overflow.
M2 hardware versions before v1.3 interpret values as signed
bytes on this instruction.

Flags Affected: None

Exceptions:

RM PM VM SMM Description
#GP(0) If Illegal memory operands EA in CS,DS,ES,FS,GS
#SS(0) If Illegal memory operands EA in SS
#PF(fcode) If page fault
#AC #AC If unaligned memory reference then alignment
check enabled and in ring 3.
#UD #UD #UD #UD If CR0.EM = 1
#NM #NM #NM #NM If CR0.TS = 1
#MF #MF #MF #MF If pending FPU Exception
#13 #13 If any part of the operand lies outside of the
EA space from 0 to FFFFH
++++++++++++++++++++++++++++++++++
COP & Times:

PAVEB mm,mm/m64 0FH 50H PostByte


Copyright by InternetNightmare 2005-2006