This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F413:正在尝试理解这个代码

Guru**** 2386620 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/782163/msp430f413-trying-to-understand-this-code

器件型号:MSP430F413

您好!

我正在尝试理解这一代码、该代码是由离开公司的前工作人员编写的。

代码如下所示,不知为何我在例程中失去了它的实际功能:

;这是一个16位 x 16位乘法例程
;结果是32位长
; MULTIPLICAND X 乘法器=结果


MULER1  EQU 0228H             ;乘法器、LBYTE
MULER2  EQU MULER1+1     ;乘法器,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       ;乘法结果,LWORD
MULRT3  EQU MULRT1+2
MULRT4  EQU MULRT1+3        ;乘法结果、HWORD

多路复用器16.
            CLR &MULRT1                     ;清除乘法结果位置,LWORD
            CLR MULRT3;                      清除乘法结果位置、HWORD
            CLR 和 MULND3                      ;清除 MULTIPLICAND 位置、HWORD
            MOV #020h、R15                    ;设置计数器

MULT_XBIT
            CLRC
            RRC MULER1 (&M)
            Jnc MULT_SHIFT  
MULT_ADD
            添加   MULND1、MULRT1         ;添加带有结果的 MULTIPLICAND
            ADDC &MULND3,&MULRT3         ;添加带有结果的 MULTIPLICAND
MULT_SHIFT
            RLA   &MULND1                                ;向左移动 MULTIPLICAND、LWORD
            RLC  &MULND3                                ;向左移动 MULTIPLICAND、HWORD
            Dec  R15
            JNZ   MULT_XBIT
 可重置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 KIN:

    ;这是一个16位 x 16位乘法例程
    ;结果是一个32位长
    ;MULTIPLICAND X 乘法器=结果 

    此致、