Atmel ARM-Based Evaluation Kit for SAM4S16C, 32-Bit ARM® Cortex® Microcontroller ATSAM4S-WPIR-RD ATSAM4S-WPIR-RD Data Sheet

Product codes
ATSAM4S-WPIR-RD
Page of 1231
SAM4S Series [DATASHEET]
Atmel-11100G-ATARM-SAM4S-Datasheet_27-May-14
156
Examples
SMUAD
R0, R4, R5  ; Multiplies bottom halfword of R4 with the bottom
; halfword of R5, adds multiplication of top halfword
 ; of R4 with top halfword of R5, writes to R0
SMUADX   R3, R7, R4  ; Multiplies bottom halfword of R7 with top halfword
; of R4, adds multiplication of top halfword of R7
; with bottom halfword of R4, writes to R3
SMUSD    R3, R6, R2  ; Multiplies bottom halfword of R4 with bottom halfword
; of R6, subtracts multiplication of top halfword of R6
; with top halfword of R3, writes to R3
SMUSDX
R4, R5, R3  ; Multiplies bottom halfword of R5 with top halfword of
; R3, subtracts multiplication of top halfword of R5
 ; with bottom halfword of R3, writes to R4.
12.6.6.10SMUL and SMULW
Signed Multiply (halfwords) and Signed Multiply (word by halfword)
Syntax
op{XY}{condRd,RnRm
op{Y}{condRdRnRm
For SMULXY only:
opis one of:
SMUL{XY}         Signed Multiply (halfwords).
X
 and Y specify which halfword of the source registers Rn and Rm is used as
the first and second multiply operand. 
If X is B, then the bottom halfword, bits [15:0] of Rn is used. 
If X is T, then the top halfword, bits [31:16] of Rn is used.If Y is B, then the bot
tom halfword, bits [15:0], of Rm is used. 
If Y is T, then the top halfword, bits [31:16], of Rm is used.
SMULW{Y}           Signed Multiply (word by halfword).
Y specifies which halfword of the source register Rm is used as the second mul
tiply operand. 
If Y is B, then the bottom halfword (bits [15:0]) of Rm is used. 
If Y is T, then the top halfword (bits [31:16]) of Rm is used.
condis an optional condition code, see 
.
Rdis the destination register.
Rn, Rmare registers holding the first and second operands.
Operation
The SMULBB, SMULTB, SMULBT and SMULTT instructions interprets the values from Rn and Rm as four signed 
16-bit integers. These instructions:
Multiplies the specified signed halfword, Top or Bottom, values from Rn and Rm.
Writes the 32-bit result of the multiplication in Rd.
The SMULWT and SMULWB instructions interprets the values from Rn as a 32-bit signed integer and Rm as two 
halfword 16-bit signed integers. These instructions:
Multiplies the first operand and the top, T suffix, or the bottom, B suffix, halfword of the second operand.
Writes the signed most significant 32 bits of the 48-bit result in the destination register.
Restrictions