資源描述:
《dsp匯編語言編程基礎》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、實驗二DSP匯編語言編程基礎一、實驗目的1、了解DSP的尋址方式;2、了解DSP的匯編語言與C語言混合編程。二、實驗器材1、安裝有CCS的PC機一臺;三、實驗內(nèi)容1、建立一個工程;2、用匯編語言編程實現(xiàn)一個可被C程序調用的例程。四、實驗步驟1、匯編語言和C語言混合編程:(1)運行CCS,建立一個工程,取名exp2a,并保存到c:timyprojectsxxxExperiment2目錄下。(2)編輯如下C文件,取名exp2a.c并保存到c:timyprojectsxxxExperiment2exp2a目錄。/*Assemblyroutine*/externintsum(in
2、t*);/*definex[]asglobalarray*/intx[2]={0x1234,0x4321};/*defineresultsasglobalvariable*/ints;voidmain(){s=sum(x);/*returnsumproduct*/}(3)編輯如下匯編文件,取名exp2_sum.asm并保存到c:timyprojectsxxxExperiment2exp2a目錄。******************************exp2_sum.asmSUMsubroutine*calledbyexp2a.c*Input:Arraypointer*Outp
3、ut:ReturnsumresultinT0*****************************.global_sum_summov*AR0+,AC0;AC0=x[1]add*AR0+,AC0;AC0=x[1]+x[2]movAC0,T0ret;ReturnT0.end(4)編輯如下鏈接命令文件,取名link.cmd并保存到c:timyprojectsxxxExperiment2exp2a目錄。-c-stack0x800-sysstack0x200-mlink.mapMEMORY{DARAM:origin=0x200,len=0xfe00SARAM:origin=0x1000
4、0,len=0x30000VECT:origin=0x100,len=0x100SDRAM:origin=0x80000,len=0x380000Flash:origin=0x400000,len=0x3e0000CPLD:origin=0x800000,len=0x20000}SECTIONS{.vectors:{}>VECT.cinit:{}>SARAM.text:{}>SARAM.stack:{}>SARAM.sysstack{}>SARAM.sysmem:{}>SARAM.cio:{}>SARAM.data:{}>SARAM.bss:{}>SARAM.const:{}>SARAM.gb
5、linit:{}>SARAMfrt:{}>SARAM.pinit:{}>SARAM.sysinit:{}>SARAM.far:{}>SARAM.switch:{}>SARAM.MEM$obj:{}>SARAM.sysheap:{}>SARAM}(5)選擇Project-Options-Linker-Library標簽,添加實時支持庫rts55.lib。(6)編譯并鏈接工程,下載exp2a.out,并選擇Go-Main命令。(7)觀察并記錄CPU寄存器窗口中AC0、AR0、T0的值,觀察memory中s和x的內(nèi)容,并記錄s的值。(8)重新單步執(zhí)行C代碼和匯編代碼,觀察C編譯器產(chǎn)生的匯編代碼exp
6、2a.asm,注意匯編程序的返回值是如何被傳遞到C調用程序的。2、尋址方式實驗。(1)編輯如下C文件,取名為exp2b.c,并保存到c:timyprojectsxxxExperiment2目錄。/*---------------------------------------exp2b.cInterfacingCwithAssemblyLangugageandusingDifferentAddressingModes------------------------------------------*/externvoidexp2b_1(void);externvoidexp2b_2
7、(void);externintexp2b_3(int*,int*);externintexp2b_4(int*,int*);intAi[8];intXi[8];intresult1,result2;voidmain(){exp2b_1();exp2b_2();result1=exp2b_3(Ai,Xi);result2=exp2b_4(Ai,Xi);}(2)編輯如下匯編程序exp2b_1.asm