6 – hardware multiplier examples – Maxim Integrated DS4830A Optical Microcontroller User Manual

Page 155

Advertising
background image

DS4830A User’s Guide

155

18.6 – Hardware Multiplier Examples

The following are code examples of multiplier operations.

;Unsigned Multiply 16-bit x 16-bit
move MCNT, #21h

; CLD=1, SUS=1 (unsigned)

move MA, #0FFFh

; MC2:0=0000_0000_0000h

move MB, #1001h

; MC1R:MC0R= 00FF_FFFFh
; MC2:0=0000_00FF_FFFFh


;Signed Multiply 16-bit x 16-bit
move MCNT, #20h

; CLD=1, SUS=0 (signed)

move MA, #F001h

; MC2:0=0000_0000_0000h

move MB, #1001h

; MC1R:MC0R= FF00_0001h
; MC2:0=FFFF_FF00_0001h


;Unsigned Multiply-Accumulate 16-bit x 16-bit

; MC2:0=0000_0100_0001h

move MCNT, #03h

; MMAC=1, SUS=1 (unsigned)

move MA, #0FFFh

;

move MB, #1001h

;
; MC1R:MC0R=02FF_FFFFh
; MC2:0=0000_0200_0000h


;Signed Multiply-Accumulate 16-bit x 16-bit

; MC2:0=0000_0100_0001h

move MCNT, #02h

; SUS=0 (signed)

move MA, #F001h

;

move MB, #1001h

;
; MC1R:MC0R= FF00_0003h
; MC2:0=0000_0000_0002h


;Unsigned Multiply-Subtract 16-bit x 16-bit

; MC2:0=0000_0100_0001h

move MCNT, #07h

; MMAC=1, MSUB=1, SUS=1 (unsigned)

move MA, #0FFFh

;

move MB, #1001h

;
; MC1R:MC0R=FF00_0003h
; MC2:0=0000_0000_0002h


;Signed Multiply-Subtract 16-bit x 16-bit

; MC2:0=0000_0100_0001h

move MCNT, #06h

; MMAC=1, MSUB=1, SUS=0 (signed)

move MA, #F001h

;

move MB, #1001h

;
; MC1R:MC0R= 02FF_FFFFh
; MC2:0=0000_0200_0000h


;Signed Multiply Negate 16-bit x 16-bit
move MCNT, #24h

; CLD=1, MSUB=1, SUS=0 (signed)

move MA, #F001h

; MC2:0=0000_0000_0000h

move MB, #1001h

; MC1R:MC0R =00FF_FFFFh
; MC2:0=0000_00FF_FFFFh

Advertising