2024年3月22日发(作者:籍今瑶)
DSP程序题
1、已知(80H)=50H,AR2=84H,AR3=86H,AR4=88H。
MVKD 80H,*AR2
MVDD *AR2,*AR3
MVDM 86H, AR4
运行以上程序后,(80H)、(84H)、*AR3和AR4的值分别等于
多少?
解:(80H)=50H,(84H)=50H,*AR3=50H,AR4=50H
2、已知,(80H)=20H、(81H)=30H。
LD #0,DP
LD 80H,16,B
ADD 81H,B
运行以上程序,B等于多少?
答:(B)=00 0000 0000H
3、阅读以下程序,分别写出运行结果。
.bss x,4
.data
table:.word 4,8,16,32
……
STM #x,AR1
RPT #2
MVPD table,*AR1+
①解:数据表table中的常量4传送到以变量x 的地址为地址的存
储单元中;数据表table 中的常量8传送到以变量x+1 的地址为地址
的存储单元中;数据表table中的常量16传送到以变量x+2 的地址为
地址的存储单元中;
.bss x,4
.data
table: .word 4,8,16,32
……
STM #x,AR1
RPT #2
MVPD table,*+AR2
②解:数据表table中的常量4传送到以变量x+1 的地址为地址
的存储单元中;数据表table 中的常量8传送到以变量x+2 的地址为
地址的存储单元中;数据表table中的常量16传送到以变量x+3 的地
址为地址的存储单元中;
4、指令
●ADD #4568H,8,A,B //将4568H左移8位与A相加,赋给B。
●ADD A,-8,B//将A右移8位加上B,保存于B。
●ADD *AR3+,14,A//将AR3左移4加上A→A。
●DST B,*AR1-//B存到长字单元→AR1中,且AR减1。
●LDM AR1,A //存储器映像寄存器寻址方式,将映像寄存器加载
累加器AR1→A的低位,其余位置0。
●LD #10H,4,A//将10H左移4位加载到累加器A中。
●MAC *AR3+,*AR4+,A,B//44+A→B,AR3与AR3都加
1。
●MVKD SAMPLE,*AR5//SAMPLE→AR5中。
●MVDD *AR3+,*AR5+ //数据存储器内部传送数据AR3→AR5,
且指令结束后AR3与AR5
加1。
●MPYA TEMP2//B<=2,T=Temp2。
●PPT #99NOP//重复NOP100次。
●STL A,@quot//将累加器A的低16位字存放在quot的存储单
元中。
●STL B,*AR3+//将累加器的低位移位后加载到AR3所指地址。
●WRITA SMEM //将A的内容写入SMEM中。
●LD #0032H,4,A//立即数0032H先左移4位后,再加载累加器A.
●STM #1000H,*AR2//立即数1000H存储到AR2指向的地址单
2024年3月22日发(作者:籍今瑶)
DSP程序题
1、已知(80H)=50H,AR2=84H,AR3=86H,AR4=88H。
MVKD 80H,*AR2
MVDD *AR2,*AR3
MVDM 86H, AR4
运行以上程序后,(80H)、(84H)、*AR3和AR4的值分别等于
多少?
解:(80H)=50H,(84H)=50H,*AR3=50H,AR4=50H
2、已知,(80H)=20H、(81H)=30H。
LD #0,DP
LD 80H,16,B
ADD 81H,B
运行以上程序,B等于多少?
答:(B)=00 0000 0000H
3、阅读以下程序,分别写出运行结果。
.bss x,4
.data
table:.word 4,8,16,32
……
STM #x,AR1
RPT #2
MVPD table,*AR1+
①解:数据表table中的常量4传送到以变量x 的地址为地址的存
储单元中;数据表table 中的常量8传送到以变量x+1 的地址为地址
的存储单元中;数据表table中的常量16传送到以变量x+2 的地址为
地址的存储单元中;
.bss x,4
.data
table: .word 4,8,16,32
……
STM #x,AR1
RPT #2
MVPD table,*+AR2
②解:数据表table中的常量4传送到以变量x+1 的地址为地址
的存储单元中;数据表table 中的常量8传送到以变量x+2 的地址为
地址的存储单元中;数据表table中的常量16传送到以变量x+3 的地
址为地址的存储单元中;
4、指令
●ADD #4568H,8,A,B //将4568H左移8位与A相加,赋给B。
●ADD A,-8,B//将A右移8位加上B,保存于B。
●ADD *AR3+,14,A//将AR3左移4加上A→A。
●DST B,*AR1-//B存到长字单元→AR1中,且AR减1。
●LDM AR1,A //存储器映像寄存器寻址方式,将映像寄存器加载
累加器AR1→A的低位,其余位置0。
●LD #10H,4,A//将10H左移4位加载到累加器A中。
●MAC *AR3+,*AR4+,A,B//44+A→B,AR3与AR3都加
1。
●MVKD SAMPLE,*AR5//SAMPLE→AR5中。
●MVDD *AR3+,*AR5+ //数据存储器内部传送数据AR3→AR5,
且指令结束后AR3与AR5
加1。
●MPYA TEMP2//B<=2,T=Temp2。
●PPT #99NOP//重复NOP100次。
●STL A,@quot//将累加器A的低16位字存放在quot的存储单
元中。
●STL B,*AR3+//将累加器的低位移位后加载到AR3所指地址。
●WRITA SMEM //将A的内容写入SMEM中。
●LD #0032H,4,A//立即数0032H先左移4位后,再加载累加器A.
●STM #1000H,*AR2//立即数1000H存储到AR2指向的地址单