Texas Instruments MSP430x1xx User Manual
Page 95

Hardware Multiplier Operation
6-7
Hardware Multiplier
6.2.3
Multiply Unsigned and Accumulate, 16x16bit, 16x8bit, 8x16bit, 8x8bit
The following multiplication operation shows 32 bytes of program code and 32
execution cycles (16X16-bit multiplication).
**********************************************************
*
TRANSFER BOTH OPERANDS TO THE REGISTERS IN THE
*
*
HARDWARE MULTIPLIER MODULE
*
*
THE RESULT OF THE MULTIPLICATION IS ADDED TO THE
*
*
CONTENT OF BOTH RESULT REGISTERS, RESLO AND RESHI *
*
USE CONSTANT OPERAND1 AND OPERAND2 TO IDENTIFY
*
*
BYTE DATA
*
**********************************************************
OPERAND1 .EQU
0
; 0: OPERAND1 IS WORD (16BIT)
; 8: OPERAND1 IS BYTE ( 8BIT)
OPERAND2 .EQU
0
; 0: OPERAND2 IS WORD (16BIT)
; 8: OPERAND2 IS BYTE ( 8BIT)
MPY
.EQU
0130H
MPYS
.EQU
0132H
MAC
.EQU
0134H
MACS
.EQU
0136H
OP2
.EQU
0138H
RESLO
.EQU
013AH
RESHI
.EQU
013CH
SUMEXT
.EQU
013EH
.BSS
OPER1,2,200H
.BSS
OPER2,2
.BSS
RAM,8
.IF OPERAND1=8
MOV.B
&OPER1,&MAC ; LOAD 1ST OPERAND,
; DEFINES ADD. UNSIGNED MULTIPLY
.ELSE
MOV
&OPER1,&MAC ; LOAD 1ST OPERAND,
; DEFINES ADD. UNSIGNED MULTIPLY
.ENDIF
.IF OPERAND1=8
MOV.B
&OPER2,&OP2 ; LOAD 2ND OPERAND AND START
; MULTIPLICATION
.ELSE
MOV
&OPER2,&OP2 ; LOAD 2ND OPERAND AND START
; MULTIPLICATION
.ENDIF
**********************************************************
*
EXAMPLE TO ADD THE RESULT OF THE HARDWARE
*
*
MULTIPLICATION TO THE RAM DATA, 64BITS
*
*
THE RESULT OF THE MULTIPLICATION IS HELD IN RESLO*
*
AND RESHI REGISTERS. THE UPPER TWO WORDS IN THE *
*
EXAMPLE ARE FURTHER LOCATED IN THEIR RAM LOCATION*
**********************************************************
ADDC
&SUMEXT,&RAM+4
; ADD SUMEXTENSTION TO RAM+4
ADC
&RAM+6
; IF 64 BIT LENGTH IS USED