stm8中的一个计算程序

以下是stm8中的一个计算程序,望大神解析下,不知道这个程序是否可以写成一个公式的形式
u16 u16_MUL_u16_DIV_65535_CALC_SPD(u16 uwDataA,u16 uwDataB)

{
uwMulA=uwDataA;
uwMulB=uwDataB;

if((uwMulA==0)||(uwMulB==0))
{
    return 0;
}
else
{
#asm                                              
   ld A,_uwMulA                       
   ld XL,A                             
   ld A,_uwMulB                        
   mul X,A                             
   ldw _uwMulResult,X                  
   ld XL,A                             
   ld A,_uwMulA + 1                    
   mul X,A                             
   ld A,XH                             
   clrw X                              
   ld XL,A                             
   addw X,_uwMulResult                 
   ldw _uwMulResult,X                  
   ld A,_uwMulA                        
   ld XL,A                            
   ld A,_uwMulB + 1                    
   mul X,A                             
   ld A,XH                             
   clrw X                              
   ld XL,A                             
   addw X,_uwMulResult                 
   ldw _uwMulResult,X                              
#endasm  
return uwMulResult; 
}

}