大家好!
我是DSP产品的新手。最近在看DSP程序例程上有一段语句是这样的:
_ISR_Run: ;(13 cycles to get to here from ISR trigger)
;CONTEXT_SAVE
PUSH AR1H:AR0H ; 32-bit
PUSH XAR2 ; 32-bit
PUSH XAR3 ; 32-bit
PUSH XAR4 ; 32-bit
;----------------------------------------
PUSH XT ; 32-bit
NOP
;---------------------------------------------------------
;---------------------------------------------------------
MOVW DP,#ADCST>>6 ; 我看SPRU里写应当是让DP指向含有ADCST的页,那么右移6位是什么意思呢?
MOV AL,@ADCST ;
AND AL,#0x0004 ;
B ADC_Conv, NEQ ;
能不能请哪位朋友帮我解释一下高亮部分是什么意思啊? 我查了SPRU513D,没有发现DP寻址方式里有这种 MOVW DP, #xx 再加右移的方式啊?
另外,能不能请帮我看一下下面的语句,我把我的理解加了高亮,能不能请各位帮我看看我是不是理解对了啊?谢谢各位
MOVL XAR4,#(_dlog) ; 把变量dlog的地址给XAR4,即把XAR4当指针用
MOV ACC,*XAR5 ;把XAR5的内容赋给ACC(即把XAR5当指针用)
MOV *+XAR5[2],#0 ; 把0给XAR5[2],????, XARn也可以当数组用吗?
MOVL XAR7,*XAR4++ ; 先把XAR4的内容给XAR7,然后XAR4加1。即XAR4当指针用,XAR7不当指针用?
MOV @ADCTRL2,#0x4100 ; 把0X4100写入ADCTRL2寄存器
谢谢