DSP测试题及答案文档格式.doc
《DSP测试题及答案文档格式.doc》由会员分享,可在线阅读,更多相关《DSP测试题及答案文档格式.doc(9页珍藏版)》请在冰豆网上搜索。
(1)六个操作阶段。
(2)各个阶段执行的任务:
①预取指P:
将PC中的内容加载到PAB
②取指F:
将读取到的指令字加载到PB
③译码D:
将PB的内容加载IR,对IR的内容译码
④寻址A:
CPU将数据1或数据2的读地址或同时将两个读地址分别加载到数据地址总线DAB和CAB中,并对辅助寄存器或堆栈指针进行修正。
⑤读数R:
将读出的数据1和数据2分别加载到数据总线DB和CB中。
若是并行操作指令,可同时将数据3的写地址加载到数据地址总线EAB中。
⑥执行X:
执行指令,写数据加载EB。
(3)完成一条指令需要的周期:
需要:
预取指周期、取指周期、译码周期、寻址周期和读数周期。
4、TMS320VC5402共有多少可屏蔽中断?
它们分别是什么?
NMI和RS属于哪一类中断源?
(1)TMS320VC5402有13个可屏蔽中断。
(2)TMS320VC5402有的13个可屏蔽中断分别是:
(课本56页最下面)
(3)RS和NMI属于外部硬件中断。
5、试分析下列程序的流水线冲突,画出流水线操作图。
如何解决流水冲突?
STLMA,AR0
STM#10,AR1
LD*AR1,B
流水线图如下图:
解决流水线冲突:
最后一条指令(LD*AR1,B)将会产生流水线冲突,在它前面加入一条NOP指令可以解决流水线冲突。
6、已知(1030H)=0050H,AR2=1040H,AR3=1060H,AR4=1080H。
MVKD1030H,*AR2
MVDD*AR2,*AR3
MVDM1060H,AR4
运行以上程序后,(1030H)、(1040H)、*AR3和AR4的值分别等于多少?
(1030H)=0050H,(1040H)=0050H,*AR3=0050H,AR4=0050H
7、已知,(1080H)=0020H、(1081H)=0030H。
STM#1080H,AR0
STM#1081H,AR1
LD*AR0,16,B
ADD*AR1,B
运行以上程序,B等于多少?
(B)=00200030H
8、试阅读以下程序,分别写出运行结果。
(1).bssx,4
.data
table:
.word4,8,16,32
……
STM#x,AR1
RPT#2
MVPDtable,*AR1+
数据表table中的常量4传送到以变量x的地址为地址的存储单元中;
数据表table中的常量8传送到以变量x+1的地址为地址的存储单元中;
数据表table中的常量16传送到以变量x+2的地址为地址的存储单元中。
(2).bssx,4
.data
.word4,8,16,32
MVPDtable,*+AR2
9、NOP指令不执行任何操作,它有什么作用?
延时几个周期,避免流水线冲突;
需要精确延时程序时,可能也会用到NOP指令。
10.说明.text段、.data段和.bss段分别包含什么内容?
.text段(文本段),通常包含可执行代码;
.data段(数据段),通常包含初始化数据;
.bss段(保留空间段),通常为未初始化变量保留存储空间。
11.链接器能完成什么工作?
链接器命令文件中,MEMORY命令和SECTIONS命令的任务是什么?
链接器将各个目标文件合并起来,并完成如下工作:
(1)将各个段配置到目标系统的存储器。
(2)对各个符号和段进行重新定位,并给它们指定一个最终的地址。
(3)解决输入文件之间的未定义的外部引用。
MEMORY命令的作用:
MEMORY命令用来建立DSP应用系统中的存储器模型。
通过这条命令,可以定义系统中所包含的各种形式的存储器,以及它们占用的地址范围。
SECTION命令的作用:
说明如何将输入段结合成输出段;
在可执行程序中定义输出段;
规定输出段在存储器中的存储位置;
允许重新命名输出段。
12.在堆栈操作中,PC当前地址为4020H,SP当前的地址为0013H,运行PSHMAR7后,PC和SP的值分别为多少?
PC=4021H;
SP=0012H
13.试写出以下两条指令的运行结果:
①EXPA
A=FFFD876624T=0000
则以上指令执行后,B、T的值各是多少?
A=0xFFFD876624;
T=5
②NORMB
B=420D0D0D0D,T=FFF9
B=0x841A1A1A,T=FFF9
14.阅读以下程序,写出运行结果。
.bssy,5
table.word1,2,3,4,5
STM#y,AR2
RPT#5
MVPDtable,*AR2+
LD#0,B
LD#81h,AR5
STM#0,A
STM#4,BRC
STM#y,AR5
RPTBsub-1
ADD*ARM5,B,A
STLA,*AR5+
sub:
LD#0,B
运行以上程序后,(81H),(82H),(83H),(84H)和(85H)的值分别是多少?
(81H)=#1,(82H)=#2,(83H)=#3,(84H)=#4,(85H)=#5。
15.FIR滤波器的算法为y(n)=a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4),试用线性缓冲区和直接寻址的方法实现。
.title“FIR1.ASM”
.mmregs
.defstart
x.usect“x”,5
PA0.set0
PA1.set1
.data
COEF:
.word1*32768/10;
定义a4=0.1
.word-3*32768/10;
定义a3=-0.3
.word5*32768/10;
定义a2=-0.5
定义a1=-0.3
.word1*32768/10;
定义a0=-0.1
.text
start:
SSBXFRCT
STM#x+5,AR2
STM#4,AR0
LD#x+1,DP
PORTRPA1,@x+1
FIR1:
RPTZA,#4
MACD*AR2-,COEF,A
STHA,*AR2
PORTW*AR2+,PA0
BDFIR1
PORTRPA1,*AR2+0
.end
16.试用线性缓冲区和间接寻址的方法实现上题算法的FIR滤波器。
.title“FIR2.ASM”
.mmregs
.defstart
.bssy,1
xn.usect“xn”,5
b0.usect“a0”,5
PA0.set0
PA1.set1
.data
.word1*32768/10;
.word-3*32768/10;
.word5*32768/10;
.word1*32768/10;
.text
SSBXFRCT
STM#a0,AR1
RPT#4
MVPDtable,*AR1+
STM#xn+4,AR2
STM#b0+4,AR3
STM#5,BK
STM#-1,AR0
LD#xn,DP
PORTRPA1,@xn
FIR2:
RPTZA,#4
MAC*AR2+0%,*AR3+0%,A
STHA,@y
PORTW@y,PA0
BDFIR2
PORTRPA1,*AR2+0%
.end
17.试分别说明下列有关定时器初始化和开放定时中断语句的功能:
①STM#0080H,IFR
清除定时器中断1标志位
②STM#0080H,IMR
允许定时器T1或DMAC1中断(使用哪一种中断由DMA通道优先级和使能控制寄存器DMPREC控制。
在复位以后,中断被配置为定时器T1中断)。
③RSBXINTM
使能所有可屏蔽中断。
④STM#0279H,TCR
设置定标计数器的值PSC为9;
定时器分频系数为9;
以PRD中的值加载TIM,以TDDR中的值加载PSC;
定时器停止工作。
18.假设