Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all articles
Browse latest Browse all 22197

MSP430F413: Trying to understand this code

$
0
0

Part Number:MSP430F413

Hi,

I am trying to understand this code which was written by a former staff who has left the company.

The code is as follows, somehow I got lost in the routine as to what it actually does :

; THIS IS A 16-BIT BY 16-BIT MULTIPLICATION ROUTINE
; THE RESULT IS A 32-BITS LONG
; MULTIPLICAND X MULTIPLIER = RESULT


MULER1  EQU 0228H              ; MULTIPLIER, LBYTE
MULER2  EQU MULER1+1      ; MULTIPLIER, HBYTE

MULND1  EQU 022AH
MULND2  EQU MULND1+1      ; MULTIPLICAND, LWORD
MULND3  EQU MULND1+2
MULND4  EQU MULND1+3       ; MULTIPLICAND, HWORD

MULRT1  EQU 0238H
MULRT2  EQU MULRT1+1        ; MULTIPLICATION RESULT, LWORD
MULRT3  EQU MULRT1+2
MULRT4  EQU MULRT1+3         ; MULTIPLICATION RESULT, HWORD

MULT16
             CLR &MULRT1                      ; CLEAR MULTIPLICATION RESULT LOCATION, LWORD
             CLR &MULRT3                      ; CLEAR MULTIPLICATION RESULT LOCATION, HWORD
             CLR &MULND3                      ; CLEAR MULTIPLICAND LOCATION, HWORD
             MOV #020h,R15                     ; SET COUNTER

MULT_XBIT
             CLRC
             RRC  &MULER1
             JNC  MULT_SHIFT 
MULT_ADD
             ADD    &MULND1, &MULRT1          ; ADD MULTIPLICAND WITH RESULT
             ADDC  &MULND3, &MULRT3          ; ADD MULTIPLICAND WITH RESULT
MULT_SHIFT
             RLA   &MULND1                                 ; SHIFT LEFT MULTIPLICAND, LWORD
             RLC   &MULND3                                 ; SHIFT LEFT MULTIPLICAND, HWORD
             DEC   R15
             JNZ    MULT_XBIT
 RET


Viewing all articles
Browse latest Browse all 22197

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>