1一.填空题(本题总分12分,每空1分)1.累加器A分为三个部分,分别为AG;AH;AL。2.TMS320VC5402型DSP的内部采用8条16位的多总线结构。3.TMS320VC5402型DSP采用哈佛总线结构对程序存储器和数据存储器进行控制。4.TMS329VC5402型DSP有8个辅助工作寄存器。5.DSP处理器TMS320VC5402中DARAM的容量是16K字。6.TI公司的DSP处理器TMS320VC5402PGE100有2个定时器。7.在链接器命令文件中,PAGE1通常指数据存储空间。8.C54x的中断系统的中断源分为硬件中断和软件中断。9.TI公司DSP处理器的软件开发环境是CCS(CodeComposerStudio)10.DSP处理器TMS320VC5402外部有20根地址线。11.直接寻址中从页指针的位置可以偏移寻址128个单元。12.在链接器命令文件中,PAGE0通常指程序存储空间。13.C54x系列DSP处理器中,实现时钟频率倍频或分频的部件是锁相环PLL14.TMS320C54x系列DSP处理器上电复位后,程序从指定存储地址FF80h单元开始工作。15.TMS320C54x系列DSP处理器有2个通用I/O引脚,分别是BIO和XF16.DSP处理器按数据格式分为两类,分别是定点DSP和浮点DSP17.TMS329VC5402型DSP的ST1寄存器中,INTM位的功能是开放/关闭所有可屏蔽中断18.TMS320C54XDSP主机接口HPI是8位并行口。19.在C54X系列中,按流水线工作方式,分支转移指令的分为哪两种类型:无延迟分支转移;延迟分支转移20.C54x的程序中,“.bss”段主要用于为变量保留存储空间21.从数据总线的宽度来说,TMS320VC5402PGE100是16位的DSP处理器。222.TMS320VC5402型DSP处理器的内核供电电压1.8伏。23.TMS320C5402系列DSP处理器最大的数据存储空间为64k字。24.在链接器命令文件中,PAGE0通常指程序存储空间。25.DSP技术是利用专用或通用数字信号处理芯片,通过数值运算的方法对信号进行处理。26.C54x的程序中,“.text”段是文本段,主要包含可执行文本27.C54x系列DSP上电复位后的工作频率是由片外3个管脚CLKMD1;CLKMD2;CLKMD3来决定的。28.DSP处理器TMS320C5402最大的程序存储空间为1M字。29.从应用领域来说,MCU(单片机)主要用于控制领域;DSP处理器主要应用于信号处理30.TMS320C54XDSP提供一个用16位堆栈指针(SP)寻址的软件堆栈。当向堆栈中压入数据时,堆栈是从高地址向低地址方向填入。31.TMS320C54XDSP软硬件复位时,复位中断向量的地址为程序空间的FF80H32.4.TMS320C54X可编程定时器的定时周期=(时钟周期)*(分频系数TDDR+1)*(PRD+1)。33.5.DSP处理器的英文全称DigitalSignalProcessor34.DSP处理器TMS320VC5402的IO管脚供电电压3.3伏。35.C54x的程序中,“.data”段是数据段,主要用于通常包含初始化数据36.DSP处理器TMS320C5402的I/O空间为64k字。37.TMS320VC5402型DSP的累加器是40位。38.TMS329VC5402型DSP的MP/MC管脚的功能是微计算机或是微处理器工作模式。39.TMS320VC5402型DSP的CPU采用桶形移位寄存器作为专用硬件实现移位功能。40.汇编语句“STLA,@y”中“@y”表示直接寻址方式。41.TMS320VC5402型DSP的ST1寄存器中,CPL位的功能是指示直接寻址采用何种指针342.解释汇编语句“READA*AR1”的功能:以累加器A的内容作为地址读取程序存储单元,将读取的数据存入以ARI的内容作为地址的数据存储单元中43.TMS320C54X具有两个通用I/O口,BIO用于输入外设的状态;XF用于输出外设的控制信号。三.程序阅读题(本题总分30分,每小题10分)1.阅读下面的程序,回答问题。.bssx,8LD#0001H,16,BSTM#7,BRCSTM#x,AR4RPTBnext-1ADD*AR4,16,B,ASTHA,*AR4+next:LD#0,B问题:(1)寄存器“BRC”的功能是什么?答:功能是暂存块循环的次数(2)汇编语句“ADD*AR4,16,B,A”执行了多少次?答:8次(3)执行语句“LD#0001H,16,B”后,累加器B的内容是多少?答:B=0x0100H2.阅读下面的程序:.mmregsDAT0.SET60HDAT1.SET61H4DAT2.SET62HDAT3.SET63Hadd3.macroP1,P2,P3,ADDRPLDP1,AADDP2,AADDP3,ASTLA,ADDRP.endmST#0034h,DAT0ST#0243h,DAT1ST#1230h,DAT2ADD3DAT0,DAT1,DAT2,DAT3问题:(1)语句“.mmregs”的含义。答:定义存储器映像寄存器的符号名称(2)语句“ADD3DAT0,DAT1,DAT2,DAT3”是一条什么类型的语句?作用是什么?答:类型:宏调用作用:执行三个数相加(3)执行此段程序后,存储单元(DAT3)的运行结果多少?答:14a7H3.阅读下面的程序片断,写出运行结果.mmregsDAT0.SET60HLD#004h,DPST#0345h,DAT05STM#0002h,TMPYDAT0,ANOP问题:(1)寄存器T的作用是什么?答:作用是暂存被乘数(2)执行“MPYDAT0,A”后,累加器A的内容是什么?答:0x68A或68Ah4.阅读程序,回答后面的问题STM#6,AR4begin:STM#9,BRCRPTBnext-1nopnext:LD#0,Bbanzbegin,*AR4-问题:(1)BRC寄存器是做什么用途?答:保存RPTB指令的循环次数(2)语句“banzbegin,*AR4-”的作用是什么?答:判断AR4的内容是否为零,若不为零,跳转到标号begin(3)其中的“nop”语句被执行了多少次?答:70次5.已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=111,外部晶振=10MHz,参数设置表:CLKMD1CLKMD2CLKMD3CLKMD复位值时钟方式6000E007HPLL×150019007HPLL×100104007HPLL×51001007HPLL×2110F007HPLL×11110000H2分频101F000H4分频STM#00H,CLKMDStatus:LDMCLKMD,AAND#01H,ABCStatus,ANEQSTM#9007H,CLKMD问题(1)DSP复位后,DSP的工作时钟是多少?答:5MHz(2)执行上面的程序片段后,DSP的工作时钟是多少?答:100MHz6.阅读下面的程序片断,写出运行结果.mmregsbei_hua.set18LD#bei_hua,A问题:(1)“.mmregs”的作用是什么?答:定义存储器映像寄存器的符号名称(2)运行此段程序后,累加器A的结果是多少?答:1877.阅读下面的程序,回答问题。.sect.vectorsrst:B_c_int00;复位中断向量的入口NOPNOP.space18*4*16tint:Btimeout;定时器0的中断向量的入口NOPNOP问:(1)“.sect”伪指令的作用是什么?答:定义一个自定义段名的程序段(2)标号“rst”的地址为6000H,请问标号“tint”的地址是多少?答:604Ch8.阅读下面的命令连接文件(简称CMD文件)和程序文件:CMD文件:MEMORY{PAGE0:PROG:origin=0x1000,length=0x1000PAGE1:DATA:origin=0x2000,length=0x1000}SECTIONS{.text:{}PROGPAGE0.data:{}DATAPAGE18}.datatable:.word1,2,3,4;变量初始化.textstart:STM#0,SWWSR;插入0个等待状态问:(1)MEMORY和SECTIONS的作用各是什么?答:链接伪指令,用来指定目标存储器结构和地址分配(2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间?答:标号“table”:1000h(程序空间)标号”start”:2000h(数据空间)9.阅读下面的程序片断,回答下面的问题DAT0.SET60HDAT1.SET61HDAT2.SET62HDAT3.SET63HLD#004h,DPST#83h,DAT0ST#0041h,DAT1RSBXSXMLDDAT0,ARPT#15SUBCDAT1,ASTLA,DAT29STHA,DAT3问:在CPL=0的情况下,(1)语句“STLA,DAT2”,其中DAT2所指的地址是多少?答:0262h(2)存储单元(DAT2)和(DAT3)的内容是多少?答:(DAT2)=02H(DAT3)=01H10.阅读下面的程序,回答问题。MEMORY{PAGE0:PROG:origin=0x2000,length=0x1000PAGE1:DATA:origin=0x3000,length=0x1000}SECTIONS{.text:{}PROGPAGE0.bss:{}DATAPAGE1}汇编程序:.bssa,4.bssx,4.bssy,1STM#a,AR3STM#x,AR4RPTZA,#3MAC*AR3+,*AR4+,A10STLA,*(y)问题:(1)指令“STM#a,AR3”的作用是什么?执行此句指令后,寄存器AR3的内容是多少?答:将标号a的地址赋给辅助工具寄存器AR3,AR3=3000h(2)指令“MAC*AR3+,*AR4+,A”执行了几次?每执行一次寄存器AR3和AR4的内容如何变化?答:执行了4次,每执行一次,辅助功能寄存器AR3和AR4内容增一(3)这段代码的功能是什么?答:y=a1x1+a2x2+a3x3+a4x411.阅读下面的程序,回答问题。MEMORY{PAGE0:PROG:origin=0x2000,length=0x1000PAGE1:DATA:origin=0x4000,length=0x1000}SECTIONS{.text:{}PROGPAGE0STACK:{}DATAPAGE1}汇编程序size.set0x0120stack.usect“STACK”,size.textSTM#stack+size,SP问题:(1)指令“stack.usect“STACK”,size”的作用是什么?11答:定义一个未初始化段,段名为”STACK”,目的是为变量stack保留size个存储空间(2)标号“stack”的存储器地址是多少?答:0x4000(3)执行这段代码之后,SP寄存器的内容是多少?答:SP=0x412012.阅读下面的程序,回答问题。MEMORY{PAGE0:PROM:org=0E000h,len=100hVECS:org=0FF80h,len=04hPAGE1:SPRAM:org=0060h,len=20hDARAM:org=0080h,len=100h}SECTIONS{.text:EPROMPAGE0.data:EPROMPAGE0.bss:SPRAMPAGE1STACK:DARAMPAGE1vectors:VECSPAGE0}问题:(1)该文件是如何配置程序空间和数据空间的?(2)该文件中出现了几个段?哪些是初始化段?哪些是未初始化段?各段是如何分配的?答:出现了5个段,text,data和vectors是初始化段,bbs和STACK段是未初始化段1213.已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=101,外部晶振=10MHz,参