dsp56800e Freescale Semiconductor, Inc, dsp56800e Datasheet - Page 179

no-image

dsp56800e

Manufacturer Part Number
dsp56800e
Description
16-bit Digital Signal Controller Core
Manufacturer
Freescale Semiconductor, Inc
Datasheet
The following sections demonstrate the use of these instructions in multi-precision integer multiplications.
5.5.3.1
Figure 5-22 and Example 5-23 demonstrate a signed multiplication of two 32-bit long values that generates
a 32-bit long integer result.
C1:C0 = A1:A0 × B1:B0
(Both 32-Bit Operands Are Signed)
;Signed x Signed 32-Bit Integer Multiplication
This example, which saves only the lower 32 bits of the result, does not require the A1 × B1 product,
which only affects the upper 32 bits of the result. Also note that C2 in the final result is modified and does
not contain valid data.
Freescale Semiconductor
IMPYSU—multiplication with one signed and one unsigned operand
(signed 16-bit operand located in FF1 portion, unsigned in FF0)
IMPYUU—multiplication with two unsigned operands (2 cases)
(each unsigned 16-bit operand located in the FF0 portion)
(first 16-bit operand located in FF1 portion, second in FF0)
IMPYSU
IMACUS
IMPYUU
ADD
Signed 32-Bit × Signed 32-Bit with 32-Bit Result
Figure 5-22. 32-Bit × 32-Bit –> 32-Bit Signed Integer Multiplication
Example 5-23. Multiplying Two Signed Long Integers
A1,B0,Y
A0,B1,Y
A0,B0,C
Y0,C
Data Arithmetic Logic Unit
; Y1:Y0 = signed A1 x unsigned B0
; Y1:Y0 = unsigned A0 x signed B1 + Y1:Y0
; C2:C1:C0 = unsigned A0 x unsigned B0
; Combine Results: final 32-bit result in C
Signed × Unsigned
Unsigned × Signed
×
+
C2
A1 × B0
A0 × B1
Extended- and Multi-Precision Operations
Unsigned × Unsigned
A1
B1
C1
A0 × B0
32 Bits
32 Bits
32 Bits
C0
A0
B0
5-33

Related parts for dsp56800e