您好!
我正在尝试理解这一代码、该代码是由离开公司的前工作人员编写的。
代码如下所示,不知为何我在例程中失去了它的实际功能:
;这是一个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
可重置