DSP实验报告
- 格式:doc
- 大小:159.50 KB
- 文档页数:12
DSP实验报告电子111班刘卓112099同组人:张顺 112108指令实验一、实验目的1、了解DSP的结构及引脚功能;2、掌握DSP的基本指令。
二、实验要求了解怎样对DSP进行简单的编程操作、运算控制等基本汇编语言及算术语言、实验测试及除错验证。
三、实验步骤见教材342页。
四、实验结果1、直观结果.title "ex1".mmregs.def _c_int00DAT0 .SET 60HDAT1 .SET 61HDAT2 .SET 62HDAT3 .SET 63H.textADD3 .MACRO P1,P2,P3,ADDRPLD P1,AADD P2,AADD P3,ASTL A,ADDRP.ENDM_c_int00:B startstart: LD #004h,DP ;DP=0004,ST0=1804STM #1000h,SP ;SP=1000SSBX INTM ;INTM=1bk0: ST #0012h,DAT0 ;D(0x0260)=0x0012LD #0023h,A ;A=0000000023ADD DAT0,A ;A=0000000035,ST0=1004,C=0NOPNOPbk1: ST #0054h,DAT0 ;D(0x0260)= 0x0054LD #0002h,A ;A=0000000002SUB DAT0,A ;A=FFFFFFFFAENOPNOPbk2: ST #0345h,DAT0 ;D(0x0260)=0x0345STM #0002h,T ;T=0002MPY DAT0,A ;A=000000068ANOPNOPbk3: ST #1000h,DAT0 ;D(0x0260)=0x1000ST #0041h,DAT1 ;D(0x0261)=0x0041RSBX SXM ;ST1=2800,SXM=0LD DAT0,A ;A=0000001000RPT #15SUBC DAT1,A ;A=000001003F,C=1STL A,DAT2 ;D(0x0262)=0x003FSTH A,DAT3 ;D(0x0263)=0x0001NOPNOPbk4: ST #0333h,DAT0 ;D(0x0260)=0x0333SQUR DAT0,A ;A=00000A3C29NOPNOPbk5: ST #0034h,DAT0 ;D(0x0260)=0x0034ST #0243h,DAT1 ;D(0x0261)=0x0243ST #1230h,DAT2 ;D(0x0262)=0x1230ADD3 DAT0,DAT1,DAT2,DAT3 ;D(0x0263)=0x14A7 ,A=00000014A7,C=0NOPNOPbk6: B bk0 ;循环执行.end2、非直观结果.title "ex1".mmregs.def _c_int00DAT0 .SET 60HDAT1 .SET 61HDAT2 .SET 62HDAT3 .SET 63H.textADD3 .MACRO P1,P2,P3,ADDRPLD P1,AADD P2,AADD P3,ASTL A,ADDRP.ENDM_c_int00:B startstart: LD #004h,DP ;DP=4hSTM #1000h,SP ;SP=1000hSSBX INTM ;INTM=1bk0: ST #0012h,DAT0LD #0023h,AADD DAT0,A ;加法操作:12h和23h相加结果赋给A,A=35hNOPNOPbk1: ST #0054h,DAT0LD #0002h,ASUB DAT0,A ;减法操作:02h和54h相减结果赋给A,A=FAEhNOPNOPbk2: ST #0345h,DAT0STM #0002h,TMPY DAT0,A ;乘法操作:345h和02h相乘结果赋给A,A=68AhNOPNOPbk3: ST #1000h,DAT0ST #0041h,DAT1RSBX SXMLD DAT0,ARPT #15SUBC DAT1,ASTL A,DAT2 ;除法操作:1000h和41h相除,商赋给DAT2,余数赋给DAT3 STH A,DAT3 ;D(0262)=3Fh,D(0263)=01hNOPNOPbk4: ST #0333h,DAT0SQUR DAT0,A ;平方操作:333h进行平方操作结果赋给A,A=0A3C29hNOPNOPbk5: ST #0034h,DAT0ST #0243h,DAT1ST #1230h,DAT2ADD3 DAT0,DAT1,DAT2,DAT3 ;三数相加操作:34h、243h和1230h三个数相加结果赋给DAT3,D(0263)=14A7h NOPNOPbk6: B bk0 ;循环执行.end五、思考题无命令文件,链接器对存储器模型及输出段的配置是怎么处理的?答:链接器对存储器模型及输出段的配置采用默认算法进行处理。
存储器试验一、实验目的1、了解DSP内部数据存储器和程序存储器的结构;2、了解DSP指令的几种寻址方式。
二、实验要求通过CCSC5000的DSP仿真器对DSP进行仿真,向DSP外扩DRAM写入数据、读数据、数据块的移动,其操作结果通过CCSC5000仿真界面进行观察。
三、实验步骤见教材344页。
四、实验结果1、直观结果.title "ex2".global reset.mmregs.def _c_int00DAT0 .set 00HDAT1 .set 01HDAT2 .set 02HDAT3 .set 03HDDAT0 .set 2004HDDAT1 .set 2005HDDAT2 .set 2006HDDAT3 .set 2007HPDAT0 .set 1f00HPDAT1 .set 1f01HPDAT2 .set 1f02HPDAT3 .set 1f03H.sect ".vectors"reset: B _c_int00NOPNOP.space 4*126circle .usect "circle", 4.bss y,8.datatable .word 1,2,3,4.textDELAY .macro COUNTSTM COUNT,BRCRPTB delay?NOPNOPNOPNOPdelay?: NOP.endm_c_int00:LD #40h,DP ;DP=0040,ST0=1840STM #3000h,SP ;SP=3000SSBX INTM ;INTM=1STM #07FFFh,SWWSR ;置外部等待时间bk0: SSBX XF ;XF=1DELAY #0FFFFhRSBX XF ;XF=0DELAY #0FFFFhSSBX XF ;XF=1DELAY #0FFFFhbk1: ST #1234h,DAT0 ;D(0x2000)=0x1234 ST #5678h,*(DDAT1) ;D(0x2005)=0x5678NOPNOPbk2: MVDK DAT0,DDAT0 ;D(0x2004)=0x1234 MVKD DDAT1,DAT1 ;D(0x2001)=0x5678NOPNOPbk3: MVDP DAT0,PDAT0 ;P(0x1F00)=0x1234 MVDP DAT1,PDAT1 ;P(0x1F01)=0x5678NOPNOPbk4: LD #PDAT1,A ;A=0000001F01 READA DAT2 ;D(0x2002)=0x5678NOPNOPbk5: ST #3210h,DAT3 ;D(0x2003)=0x3210 NOPNOPbk6: SSBX CPL ;ST1=6900NOPST #9876h,DAT3 ;D(0x2003)=0x9876NOPNOPRSBX CPL ;ST1=2900NOPNOPbk7: STM #DDAT3,AR0 ;AR0=2007ST #9876h,*AR0 ;D(0x2007)=0x9876NOPNOPbk8: STM #8888h,T ;T=8888NOPNOPNOPbk9: PSHM TNOPNOPPOPM TNOPNOPbk10: STM #2100h,AR1 ;AR1=2100RPT #07hST #0aaaah,*AR1+;D(0x2100)=0Xaaaa, D(0x2101)=0xAAAA,D(0x2102)=0xAAA,D(0x2103)=0xAAAA ;D(0x2104)=0xAAAA,D(0x2105)=0xAAAA,D(0x2106)=0xAAAA,D(0x2107)=0xAAAA STM #7h,AR3 ;AR3=0007STM #2100h,AR1 ;AR1=2100STM #2108h,AR2 ;AR2=2108Hloop: LD *AR1+,TST T,*AR2+BANZ loop,*AR3- ;T=AAAA;D(0x2108)=0Xaaaa,D(0x2109)=0xAAAA,D(0x210A)=0xAAAAD(0x210B)=0xAAAA ;D(0x210C)=0xAAAA,D(0x210D)=0xAAAA,D(0x210E)=0xAAAAD(0x210F)=0xAAAA NOPbk11: STM #1,AR0 ;AR0=0001STM #table ,AR4 ;AR4=200CSTM #circle,AR2 ;AR2=2000STM #4,BK ;BK=0004STM #y, AR3 ;AR3=2004RPT #3MVDD *AR4+,*AR2+0%;D(0x2000)=0x0001,D(0x2001)=0x0002,D(0x2002)=0x0003,D(0x2003)=0x0004 RPT #7MVDD *AR2+0%,*AR3+;D(0x2004)=0x0001,D(0x2005)=0x0002,D(0x2006)=0x0003,D(0x2007)=0x0004 ;D(0x2008)=0x0001,D(0x2009)=0x0002,D(0x200A)=0x0003,D(0x200B)=0x0004 bk12: STM #8,AR0 ;AR0=0008STM #4000h,AR5 ;AR5=4000RPT #15MVPD 1000H,*AR5+0B;D(0x4000)=0XEA40,D(0x4001)=0xFFFF,D(0x4002)=0x7728,D(0x4003)=0XF495 ;D(0x4004)=0x3000,D(0x4005)=0x100F, D(0x4006)=0XF7BD, D(0x4007)=0XF495 ;D(0x4008)=0x7718,D(0x4009)=0XF072, D(0x400A)=0x7FFF, D(0x400B)=0XF495 ;D(0x400C)=0XF7BB,D(0x400D)=0xF495, D(0x400E)=0x771A, D(0x400F)=0XF495 NOPbk13: B _c_int00.end2、寻址方式.title "ex2".global reset.mmregs.def _c_int00DAT0 .set 00HDAT1 .set 01HDAT2 .set 02HDAT3 .set 03HDDAT0 .set 2004HDDAT1 .set 2005HDDAT2 .set 2006HDDAT3 .set 2007HPDAT0 .set 1f00HPDAT1 .set 1f01HPDAT2 .set 1f02HPDAT3 .set 1f03H.sect ".vectors" reset: B _c_int00NOPNOP.space 4*126circle .usect "circle", 4 .bss y,8.datatable .word 1,2,3,4.textDELAY .macro COUNTSTM COUNT,BRCRPTB delay?NOPNOPNOPNOPdelay?: NOP.endm_c_int00:LD #40h,DPSTM #3000h,SPSSBX INTMSTM #07FFFh,SWWSR bk0: SSBX XFDELAY #0FFFFhRSBX XFDELAY #0FFFFhSSBX XFDELAY #0FFFFhbk1: ST #1234h,DAT0 ;立即数寻址、直接寻址ST #5678h,*(DDAT1) ;立即数寻址、绝对地址寻址NOPNOPbk2: MVDK DAT0,DDAT0 ;直接寻址、绝对地址寻址MVKD DDAT1,DAT1 ;绝对地址寻址、直接寻址NOPNOPbk3: MVDP DAT0,PDAT0 ;直接寻址、绝对地址寻址MVDP DAT1,PDAT1 ;直接寻址、绝对地址寻址NOPNOPbk4: LD #PDAT1,AREADA DAT2 ;累加器寻址、直接寻址NOPNOPbk5: ST #3210h,DAT3 ;立即数寻址、直接寻址NOPNOPbk6: SSBX CPLNOPST #9876h,DAT3 ;立即数寻址、直接寻址NOPNOPRSBX CPLNOPNOPbk7: STM #DDAT3,AR0 ;立即数寻址、存储器映射寄存器寻址ST #9876h,*AR0 ;立即数寻址、间接寻址NOPNOPbk8: STM #8888h,T ;立即数寻址、存储器映射寄存器寻址NOPNOPNOPbk9: PSHM T ;堆栈寻址、存储器映射寄存器寻址NOPNOPPOPM T ;堆栈寻址、存储器映射寄存器寻址NOPNOPbk10: STM #2100h,AR1 ;立即数寻址、存储器映射寄存器寻址 RPT #07hST #0aaaah,*AR1+ ;立即数寻址、间接寻址STM #7h,AR3 ;立即数寻址、存储器映射寄存器寻址 STM #2100h,AR1 ;立即数寻址、存储器映射寄存器寻址 STM #2108h,AR2 ;立即数寻址、存储器映射寄存器寻址loop: LD *AR1+,T ;间接寻址、存储器映射寄存器寻址 ST T,*AR2+ ;存储器映射寄存器寻址、间接寻址BANZ loop,*AR3-NOPbk11: STM #1,AR0 ;立即数寻址、存储器映射寄存器寻址STM #table ,AR4 ;立即数寻址、存储器映射寄存器寻址STM #circle,AR2 ;立即数寻址、存储器映射寄存器寻址STM #4,BKSTM #y,AR3 ;立即数寻址、存储器映射寄存器寻址RPT #3MVDD *AR4+,*AR2+0% ;间接寻址、绝对地址寻址RPT #7MVDD *AR2+0%,*AR3+ ;间接寻址、绝对地址寻址bk12: STM #8,AR0 ;立即数寻址、存储器映射寄存器寻址 STM #4000h,AR5 ;立即数寻址、存储器映射寄存器寻址RPT #15MVPD 1000H,*AR5+0B ;绝对地址寻址、间接寻址NOPbk13: B _c_int00.endI/O口实验一、实验目的1、了解I/O口的扩展;掌握I/O口的操作方法;2、熟悉PORTR,PORTW指令的用途;3、了解数字量与模拟量的区别和联系。