请问如下程序有疑惑不解
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?
麻烦工作人员解答一下。谢谢!