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.

关于HV_SOLAR_DC_AC_v1.1示例程序问题



请问如下程序有疑惑不解

MOVW DP, #_GEN_SIN_COS_Sin_0
MOVL XAR0,@_GEN_SIN_COS_Ws ;Q20
MOVL XAR1,@_GEN_SIN_COS_Ts ;Q24
MOVL XAR2,@_GEN_SIN_COS_Sin_0 ;Q22
MOVL XAR3,@_GEN_SIN_COS_Cos_0 ;Q22

MOVL XT,*XAR0
IMPYL P,XT,*XAR1 ;lower 32 bits 低32位
QMPYL ACC,XT,*XAR1 ;upper 32 bits 高32位
LSL64 ACC:P,#8 ;ACC = Ws*Ts , ACC->Q20
MOVL @_dwSin_Cos_Temp,ACC ;Temp = Ws*Ts

问题 一

倒数第二行 LSL64 ACC:P,#8 ;ACC = Ws*Ts , ACC->Q20 这句程序的作用是什么?为什么64位数要左移8位?

问题二 注释中ACC->Q20 是因为乘数中一个是Q20、一个是Q24所以取精度低的Q20?还是因为别的什么原因ACC->Q20?

麻烦工作人员解答一下。谢谢!