




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 電子信息學(xué)院DSP結(jié)構(gòu)原理及應(yīng)用實(shí)驗(yàn)組員:實(shí)驗(yàn)報(bào)告書(shū)寫(xiě): 日期:地點(diǎn):基礎(chǔ)教學(xué)樓B座520實(shí)驗(yàn)室 實(shí)驗(yàn)一 CCS的用法1、 實(shí)驗(yàn)?zāi)康模?)了解TMS320C54X匯編語(yǔ)言程序?qū)Φ幕靖袷揭约皡R編、鏈接的基本過(guò)程。2)初步熟悉CCS的用法。實(shí)驗(yàn)條件:1)硬件DSK板及軟件開(kāi)發(fā)平臺(tái)工具CCS。2)源程序清單lab1.asm,鏈接命令文件lab1,cmd.二、實(shí)驗(yàn)步驟:1、打開(kāi)桌面CCS2(5000)圖標(biāo),啟動(dòng)CCS集成開(kāi)發(fā)環(huán)境。2 、創(chuàng)建一個(gè)新工程;從project中選擇new項(xiàng),輸入工程名如lab1,單擊完成。3、 將文件添加到工程中: a、從project中選擇Add Files to pr
2、oject,在彈出的對(duì)話(huà)框選擇 lab1.asm文件并單擊打開(kāi);或在工程lab.pjt處單擊右鍵,選擇菜單命令A(yù)dd Files to project。b、同理將lab1.cmd文件添加入工程。4、 對(duì)工程進(jìn)行匯編、編譯、鏈接:執(zhí)行菜單命令project-Rebuild All,或在工具欄上單擊Rebuild All圖標(biāo)。5、 加載程序:執(zhí)行菜單命令File-Load Program,在彈出的對(duì)話(huà)框中選擇lab1.out并單擊打開(kāi)按鈕。6、 運(yùn)行程序:選擇Debug中的Run運(yùn)行程序或單擊工具欄的Run圖標(biāo)、Single Step圖標(biāo)運(yùn)行程序。三實(shí)驗(yàn)要求:1、 了解CCS菜單命令及產(chǎn)生各個(gè)顯示
3、窗口的操作。2、 操作各種仿真命令 進(jìn)入、退出CCS; 選擇當(dāng)前窗口,改變窗口的大小。 加載程序。 運(yùn)行程序(包括單步運(yùn)行)。 檢查修改CUP寄存器。 檢查修改存儲(chǔ)器單元內(nèi)容。 用觀(guān)察窗口檢查變量、CPU寄存器或存儲(chǔ)單元內(nèi)容。 四、實(shí)驗(yàn)源程序:* lab1.asm y= a1*x1+a2*x2+a3*x3+a4*x4 * .title lab1.asm ;匯編語(yǔ)言源文件取名 .mmregs ;定義存儲(chǔ)器印象寄存器STACK .usect STACK,10h ;為堆棧分配10個(gè)空間 .bss x,4 ;為變量x分配4個(gè)存儲(chǔ)單元 .bss a,4 ;為系數(shù)a分配4個(gè)存儲(chǔ)單元 .bss y,1 ;為
4、變量y分配1個(gè)存儲(chǔ)單元 .def start .data ;定義數(shù)據(jù)代碼段 table: .word 1,2,3,4 ;為table開(kāi)始的8個(gè)存儲(chǔ)單元賦值 .word 8,6,4,2 .text ;定義文本代碼段start: STM #0,SWWSR STM #STACK+10h,SP ;設(shè)置堆棧指針 STM #table,AR1 ;AR1指向table首地址 STM #x,AR2 ;AR2指向x首地址 STM #7,AR0 ;寄存器AR0賦值7 LD #0,A ;累加器清零loop: LD *AR1+,A ;將AR1的值賦給累加器A中 STL A,*AR2+ ;將A的低16位存儲(chǔ)到AR2中
5、BANZ loop,*AR0- ;輔助寄存器 CALL SUM ;調(diào)用乘法累加子程序SUMend: B end ;循環(huán)等等SUM: STM #a,AR3 ;將系數(shù)的首地址賦給AR3 STM #x,AR4 ;將變量x的首地址賦給AR4 RPTZ A,#3 ;將累加器清零,重復(fù)執(zhí)行下條指令4次 MAC *AR3+,*AR4+,A;執(zhí)行乘法累加運(yùn)算,結(jié)果存儲(chǔ)在累加器A中 STL A,y ;將結(jié)果(A的低16位)送往變量y存儲(chǔ)單元 RET .end5、 實(shí)驗(yàn)體會(huì):1)、出現(xiàn)一個(gè)warning: entry point other than _c_int00 specified,將start 用_c_i
6、nt00代替后warning消失,說(shuō)明標(biāo)號(hào)_c_int00更精確。2)、堆棧賦值改為20時(shí),SP值變?yōu)?00,但對(duì)整體無(wú)影響,僅只是為堆棧分配的存儲(chǔ)單元增加了。3)、4次loop循環(huán)中,PC指針由F00B到F00D依次變化,說(shuō)明 LD *AR1+,A ;STL A,*AR2+;BANZ loop,*AR0-;三條語(yǔ)句的執(zhí)行周期均為1.實(shí)驗(yàn)二 數(shù)據(jù)尋址方式1、 實(shí)驗(yàn)?zāi)康?、 熟悉TMS320C54X的各種尋址方式。2、 繼續(xù)練習(xí)CCS軟件用法。二、實(shí)驗(yàn)條件本實(shí)驗(yàn)已準(zhǔn)備的程序于表2.1中表2.1 數(shù)據(jù)尋址方式實(shí)驗(yàn)程序序號(hào)實(shí)驗(yàn)內(nèi)容源程序名鏈接文件名1立即尋址Lab2a.asmLab2a.cmd2絕對(duì)
7、尋址Lab2b.asmLab2b.cmd3累加器尋址Lab2c.asmLab2c.cmd4直接尋址Lab2d.asmLab2d.cmd5間接尋址Lab2e.asmLab2e.cmd6存儲(chǔ)器映象尋址Lab2f.asmLab2f.cmd7堆棧尋址Lab2g.asmLab2g.cmd 2、 實(shí)驗(yàn)步驟1、 雙擊桌面上的“CCS”圖標(biāo),啟動(dòng)”CCS”開(kāi)發(fā)環(huán)境。2、 在file菜單中選擇open項(xiàng),打開(kāi)并閱讀每一種尋址方式的源程序和鏈接命令文件。3、 創(chuàng)建新工程并添加文件,包括(.asm 源文件和.cmd鏈接命令文件)。4、 匯編、編譯、鏈接生成輸出文件并加載程序。5、 用單步方式執(zhí)行程序,觀(guān)察程序中各條
8、指令執(zhí)行結(jié)果。6、 在程序中添加若干條類(lèi)似這樣的尋址方式的指令,并匯編、編譯、鏈接、執(zhí)行。3、 實(shí)驗(yàn)源程序1立即尋址Lab2a.asmLab2a.cmd;*; Immediate Addressing;*.title lab2a.asm.defstart.textstart:LD#100,A ;長(zhǎng)立即數(shù)100加到累加器A,變?yōu)锳=0x0064 LD#10h,4,A ;十六進(jìn)制數(shù)10h左移4位后加載到累加器A ,A = 0x0100RSBX SXM ;狀態(tài)寄存器復(fù)位 LD#32769,B ; 立即數(shù)32769轉(zhuǎn)為16進(jìn)制加載到B,B = 0x8001 LD#4000h,16,B ;十六進(jìn)制數(shù)40
9、00h左移16位后加載到B,B = 0x40000000hereBhere .end _2絕對(duì)尋址Lab2b.asmLab2b.cmd;*; Absolute Addressing;*.title lab2b.asm.defstartSAMPLE.set0060h .bssx,10 .datatable:.word1 .word2 .word3 .word4 .word5 .textstart:LD#4AB8h,A ;4AB8h加載到累加器A,A = 4AB8; STLA,SAMPLE STM#0060h,AR2 ;寄存器AR2指向首地址0x0060 RPT#4 ;重復(fù)運(yùn)行4次 MVPDtab
10、le,*AR2+ ;將程序存儲(chǔ)器標(biāo)號(hào)為table地址單元中數(shù)據(jù)傳送到寄存器AR2中,AR2變?yōu)?x0065 RPT#4 MVKD#0061h,*AR2+ ;將地址為0061h的數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)傳到AR2,AR2變?yōu)?x006A LDx,B ;B = 0x0001 LD0061h,A ; A = 0x0002hereBhere .end _3累加器尋址Lab2c.asmLab2c.cmd;*; Accumulator Addressing;*.title lab2c.asmSTACK .usect STACK,10h.defstart.bssx,10.datatable:.word1234h,
11、5678h,9abch,0def0h.textstart:STM#STACK+10h,SP ; SP = 90LD#table,A ;A = 0xE010hSTM#0060h,AR2 ;AR2指向首地址0x0060hRPT#3 ; 重復(fù)運(yùn)行三次READA*AR2+ ;立即數(shù)尋址:AR2指向的地址空間存入“word”LD#ADD_1,A ;A = 0xE00DhCALAA ;調(diào)用子程序ADD_1hereBhereADD_1:ADD#1,A ;A = 0xE00EhRET .end4直接尋址Lab2d.asmLab2d.cmd;*; Direct Addressing;*.title lab2d.
12、asm.defstart.bssx,1.bssy,1.textstart: ST#0001, *(0180h) ;將數(shù)據(jù)0x0001存到地址為0x0180h的空間 ST#1000, *(01ffh) ;將數(shù)據(jù)1000b存到地址為0x01ffh的空間 ST#500, *(0200h) ;將數(shù)據(jù)500b存到地址為0x0200h的空間 LD#3,DP LDx,A ;A = 0x03E8 ;LD#4,DP ADDy,A ;A = 0x03E9hereBhere .end 結(jié)果可發(fā)現(xiàn),程序執(zhí)行沒(méi)有達(dá)到預(yù)期的結(jié)果(A = x + y = 1500h)其原因是x和y存放在不同頁(yè)面,執(zhí)行“ADD y,A”指令
13、時(shí),DP = 3,結(jié)果變成0180h單元中的數(shù)(0x0001)加至累加器A,故而結(jié)果為:A = 0x03E9. 5間接尋址Lab2e.asmLab2e.cmd;*; Indirect Addressing;*.title lab2d.asm.defstart.bssx,10hstart:ST#1000h,*(0060h) ;將數(shù)據(jù)0x1000存到地址為0x0060h的空間ST#2000h,*(0061h) ;將數(shù)據(jù)0x2000存到地址為0x0061h的空間ST#3000h,*(0062h) ;將數(shù)據(jù)0x3000存到地址為0x0062h的空間ST#4000h,*(0063h) ;將數(shù)據(jù)0x400
14、0存到地址為0x0063h的空間LD#1000h,A ;A = 0x1000hSTM#0060h,AR1 ;AR1首地址為0x0060hMAR*AR1+ ;修改AR1地址,使AR1指向0x0061h,間接尋址STM#2,AR0 ;AR0所在首地址存放2個(gè)地址跳變LD*AR1+0,A ;A = 0x2000hLD*AR1,B ;B = 0x4000hhereB here .end6 存儲(chǔ)器映象尋址 Lab2f.asm Lab2f.cmd ;*; Memory-Mapped Register Addressing;*.title lab2f.asm.defstart.mmregs.textstar
15、t:STM#1234h,AR1 STM#5678h,AR2STM#2,SWWSRLDMAR1,A ; A = 0x1234hMVMMAR1,AR3 ;AR3指向0x1234h,存儲(chǔ)器印象尋址STLMA,AR2 ;AR2 指向0x1234hhereBhere .end7堆棧尋址Lab2g.asmLab2g.cmd;*; Stack Addressing;*.title lab2g.asm.defstartSTACK:.usectSTACK,10h.bssx,10h.textstart:STM #STACK+10h,SP x的首地址為0x0060hST#1234h,*(x) 0x0060h 存入
16、1234hST#5678h,*(x+1) 0x0061h 存入 5678hST#9abch,*(x+2) 0x0061h 存入 9abchSTM#x,AR1RPT#2PSHD*AR1+ ;壓棧,AR1指向0x0063h,SP = 8D;* ;堆棧尋址RPT#2 ;重復(fù)運(yùn)行2次 0x0063h 存入 1234hPOPM*AR1+ 0x0064h 存入 5678h hereBhere 0x0065h 存入 9abch .end四、幾種尋址方式代碼舉例: 1,立即數(shù)尋址:LD #80h,A 2,絕對(duì)尋址:MVDK 1000h, *AR5 MVPD TABLE, *AR5 PORTR FIFO, *AR5 LD *(BUFFER), A
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字智慧方案建筑工程信息化與BIM課件
- 第六單元 第2課時(shí) 解決問(wèn)題(2)(大單元教學(xué)設(shè)計(jì)) 一年級(jí)數(shù)學(xué)下冊(cè) (蘇教版2025)
- 職業(yè)資格-房地產(chǎn)經(jīng)紀(jì)專(zhuān)業(yè)基礎(chǔ)真題庫(kù)-11
- 2025年工程法規(guī)差異對(duì)比試題
- 沖壓成型試題及答案
- 超聲影像考試題及答案
- 設(shè)施運(yùn)維考試試題及答案
- 兵團(tuán)面試題及答案
- 大運(yùn)會(huì)試題及答案
- 臨床研究委托協(xié)議
- 部編本六年級(jí)下冊(cè)語(yǔ)文課件古詩(shī)詞誦讀
- 智能割草機(jī)器人外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯
- 中山大學(xué)經(jīng)營(yíng)性用房(項(xiàng)目)租賃申請(qǐng)文件模板(報(bào)名表、申請(qǐng)文件、報(bào)價(jià)表)
- 工貿(mào)行業(yè)安全標(biāo)準(zhǔn)化考核評(píng)級(jí)標(biāo)準(zhǔn)優(yōu)質(zhì)資料
- GB/T 799-2020地腳螺栓
- GB 4053.1-2009固定式鋼梯及平臺(tái)安全要求第1部分:鋼直梯
- 膠水MSDS安全技術(shù)說(shuō)明書(shū)
- 四年級(jí)數(shù)學(xué) 《軸對(duì)稱(chēng)》
- 液壓氣動(dòng)技術(shù)課程設(shè)計(jì)報(bào)告
- 體育館專(zhuān)業(yè)擴(kuò)聲設(shè)計(jì)方案
- 億賽通數(shù)據(jù)泄露防護(hù)(DLP)_CDG_V3.1用戶(hù)使用手冊(cè)
評(píng)論
0/150
提交評(píng)論