以下是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;
}
} |