EasyManua.ls Logo

Intel 8253 - Page 526

Intel 8253
773 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
XA User Guide 6-126 4/17/98
MUL.w 16x16 Signed Multiply
MULU.b 8x8 Unsigned Multiply
MULU.w 16x16 Unsigned Multiply
Description: The byte or word specified by the source operand is multiplied by the variable
specified by the destination operand.
The destination operand must be the first half of a double size register (word for a byte multiply
and double word for a word multiply). The result is stored in the double size register.
Note: a double word register is double-word aligned in the register file (R1:R0, R3:R2, R5:R4,
and R7:R6).
Size: Byte-Byte, Word-Word
Flags Updated: C, V, N, Z
The carry flag is always cleared by a multiply instruction. The V flag is set in the following
cases, otherwise it is cleared:
- MULU.b: V is set if the result of the multiply is greater than FFh (the upper byte is not equal to
0).
- MULU.w: V is set if the result of the multiply is greater than FFFFh (the upper word is not
equal to 0).
- MUL.w: V is set if the absolute value of the result of the multiply is greater than 7FFFh (the
upper word is not a sign extension of the lower word).
Examples:
a) MUL.w R0,R5 stores the product of word register 0 and word register 5 in double word
register 0 (least significant word in word register R0, most significant word in word register R1).
b) MULU.b R4L, R4H will store the MS byte of the product of R4L and R4H in R4H and the LS
byte in R4L.

Table of Contents