




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、湖北師范學(xué)院物理與電子科學(xué)學(xué)院 匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:DSP實(shí)驗(yàn) 班級(jí):1 姓名 學(xué)號(hào):實(shí)驗(yàn)一 堆棧的使用方法一、實(shí)驗(yàn)?zāi)康?掌握堆棧的使用方法。 二、實(shí)驗(yàn)設(shè)備 計(jì)算機(jī)、DSP 實(shí)驗(yàn)箱。三、實(shí)驗(yàn)內(nèi)容 編寫程序,觀察堆棧的使用情況。四、實(shí)驗(yàn)步驟1、用仿真器將計(jì)算機(jī)與DSP 實(shí)驗(yàn)箱連接好,并依次打開實(shí)驗(yàn)箱電源、仿真器電源,然后運(yùn)行CCS 軟件。2、新建一個(gè)項(xiàng)目:點(diǎn)擊ProjectNew,將項(xiàng)目命名為example3,并將項(xiàng)目保存在自己定義的文件夾下,注意文件夾一定要用英文名,不要將文件夾取名為中文名,因?yàn)镃CS 軟件不能識(shí)別以中文命名的文件夾。3、 新建一個(gè)源文件: 點(diǎn)擊FileNew
2、Source File 可以打開一個(gè)文本編輯窗口,點(diǎn)擊保存按鍵,保存在和項(xiàng)目相同的一個(gè)文件夾下面(example3),保存類型選擇*.ASM(如果源文件是C 語言編寫的,保存類型選擇*.C,本實(shí)驗(yàn)中的例程是使用匯編語言編寫的,所以選擇*.ASM 為保存類型),我們?cè)谶@里將保存名字命名為example3.asm 。4、 在項(xiàng)目中添加源文件: 在新建了一個(gè)源文件以后,要想使用CCS 編譯器對(duì)該源文件進(jìn)行編譯還需要將源文件添加到項(xiàng)目中去。添加方法是在工程管理器中右鍵單擊example3.pjt,在彈出的菜單中選擇Add Files,然后將剛才建立的example3.asm 文件添加到該項(xiàng)目中去。5、
3、 編寫源程序: 在工程管理器中雙擊example3.asm ,將出現(xiàn)文本編輯窗口,在該文本編輯窗口中輸入如下內(nèi)容:.title "example3.asm".mmregssize .set 100stack .usect "STK",size ;堆棧的設(shè)置.bss length,10H.def _c_int00;start.text_c_int00: B start;start: STM #0,SWWSR ;插入0 個(gè)等待狀態(tài)STM #stack+size,SP ;設(shè)置堆棧的指針LD #-8531,ASTM #size,AR1MVMM SP,AR7loo
4、p: STL A,*AR7-BANZ loop,*AR1-.end6、 編寫鏈接配置文件: 只有匯編源程序是不夠的,一個(gè)完整的DSP 程序至少包含三個(gè)部分:主程序、中斷向量表、鏈接配置文件(*.cmd)。這里先介紹一下鏈接配置文件。鏈接配置文件有很多功能,這里先介紹最常用的也是必須的兩條:1.存貯器的分配 2.標(biāo)明程序入口。由于每個(gè)程序都需要一個(gè)鏈接配置文件,每個(gè)程序的鏈接配置文件根據(jù)實(shí)際情況的需要都略有不同,下面就為本實(shí)驗(yàn)的程序編寫一個(gè)鏈接配置文件,其它實(shí)驗(yàn)的鏈接配置文件都可以參考與本書配套的相應(yīng)例程來完成:/*example3.cmd */vectors.obj /*中斷向量的目標(biāo)文件*/
5、Example3.obj /*產(chǎn)生目標(biāo)文件*/-o example3.out /*產(chǎn)生可執(zhí)行下載文件,文件名可以根據(jù)不同項(xiàng)目而定*/-m example3.map /*產(chǎn)生存儲(chǔ)器映射文件,文件名可以根據(jù)不同項(xiàng)目而定 */MEMORY PAGE 0: /*定義程序存貯區(qū)*/ EPROG: origin = 0x4000, len = 0x3f80 VECT: origin = 0x7f80, len = 0x80 PAGE 1: /*定義數(shù)據(jù)存貯區(qū)*/SYSREGS: origin = 0x00, len = 0x60 BIOSREGS: origin = 0x60, len = 0x20 ID
6、ATA: origin = 0x80, len = 0x3f00 EDATA: origin = 0x8000, len = 0x8000SECTIONS .text :> EPROG PAGE 0 /*將.text 段映射到PAGE0 的EPROM 區(qū)*/.data :> EPROG PAGE 0 /*將.data 段映射到PAGE0 的EPROM 區(qū)*/.vectors: > VECT PAGE 0/*將中斷向量表定位到PAGE0 的VECS 區(qū)*/ .bss: > IDATA PAGE 1 /*將.bss 段映射到PAGE1 的IDATA 區(qū)*/ STACK: &
7、gt; IDATA PAGE 1 /*將.stack 段映射到PAGE1 的IDATA 區(qū)*/7、編寫中斷向量表文件 ;/* vectors.asm */.title "vectors.asm" ;/*中斷向量表的文件名*/.ref _c_int00;start /*引用外部定義的標(biāo)號(hào)*/.sect ".vectors" ;/*定義初始化的段名*/B _c_int00; start /*引用start*/.end8、 對(duì)項(xiàng)目進(jìn)行編譯和鏈接: 把 example3.asm、vectors.asm、example3.cmd 依次添加到項(xiàng)目后,點(diǎn)擊Projec
8、tCompileFile,在項(xiàng)目編譯成功之后點(diǎn)擊ProjectBuild 選項(xiàng)對(duì)該項(xiàng)目進(jìn)行鏈接,生成*.out 文件。9、 裝載可執(zhí)行文件: 要讓程序代碼在 DSP 內(nèi)部運(yùn)行必需將生成的*.OUT 文件裝載到DSP 內(nèi)部,裝載方法是點(diǎn)擊:FileLoad Programe 再選擇生成的example3.out 文件就可以將程序裝載到DSP 的內(nèi)部存儲(chǔ)器中。10、運(yùn)行程序并查看結(jié)果: a)首先打開欲查看的數(shù)據(jù)空間:點(diǎn)擊ViewMemory,彈出“Memory Window Options”對(duì)話框,把欲查看的地址改為0x0090,如右圖所示。 b)點(diǎn)擊OK 按鈕,然后點(diǎn)擊DebugRun 讓程序在
9、DSP內(nèi)部運(yùn)行,最后點(diǎn)擊DebugHalt,再觀察“Memory ”對(duì)話框,看是否與下圖一致: 4、 實(shí)驗(yàn)結(jié)果 實(shí)驗(yàn)結(jié)果截圖如下所示: 實(shí)驗(yàn)二 加減法和乘法運(yùn)算一、實(shí)驗(yàn)?zāi)康?掌握加減法和乘法運(yùn)算指令。二、實(shí)驗(yàn)設(shè)備 計(jì)算機(jī)、DSP 實(shí)驗(yàn)箱。3、 實(shí)驗(yàn)內(nèi)容 編寫程序,分別實(shí)現(xiàn)計(jì)算 z=x+y-w、y=mx+b、y=x1×a2+x2×a2、。四、實(shí)驗(yàn)步驟1、用仿真器將計(jì)算機(jī)與DSP 實(shí)驗(yàn)箱連接好,并依次打開實(shí)驗(yàn)箱電源、仿真器電源,然后運(yùn)行CCS 軟件。2、新建一個(gè)項(xiàng)目:點(diǎn)擊ProjectNew,將項(xiàng)目命名為example4,并將項(xiàng)目保存在自己定義的文件夾下,注意文件夾一定要用英文
10、名,不要將文件夾取名為中文名,因?yàn)镃CS 軟件不能識(shí)別以中文命名的文件夾。3、新建一個(gè)源文件:點(diǎn)擊FileNewSource File 可以打開一個(gè)文本編輯窗口,點(diǎn)擊保存按鍵,保存在和項(xiàng)目相同的一個(gè)文件夾下面(example4),保存類型選擇*.ASM(如果源文件是C 語言編寫的,保存類型選擇*.C,本實(shí)驗(yàn)中的例程是使用匯編語言編寫的,所以選擇*.ASM 為保存類型),我們?cè)谶@里將保存名字命名為example4.asm 。4、 在項(xiàng)目中添加源文件: 在新建了一個(gè)源文件以后,要想使用CCS 編譯器對(duì)該源文件進(jìn)行編譯還需要將源文件添加到項(xiàng)目中去。添加方法是在工程管理器中右鍵單擊example4.p
11、jt,在彈出的菜單中選擇Add Files,然后將剛才建立的example4.asm 文件添加到該項(xiàng)目中去。5、 編寫源程序: 在工程管理器中雙擊example4.asm ,將出現(xiàn)文本編輯窗口,在該文本編輯窗口中輸入如下內(nèi)容:* 計(jì)算 z=x+y-w *.title "example4.asm".mmregsSTACK .usect "STACK",10H ;堆棧的設(shè)置.bss x,1 ;為變量分配4 個(gè)字的存儲(chǔ)空間.bss y,1.bss w,1.bss z,1.def _c_int00.datatable .word 10,26,23 ;x,y,w.
12、text_c_int00: STM #0,SWWSR ;插入0 個(gè)等待狀態(tài)STM #STACK+10H,SP ;設(shè)置堆棧指針STM #x,AR1 ;AR1指向xRPT #2MVPD table,*AR1+ ;把程序存儲(chǔ)器中的數(shù)據(jù)移動(dòng)到數(shù)據(jù)存儲(chǔ)器CALL SUMBend: B endSUMB: LD *(x),AADD *(y),ASUB *(w),ASTL A,*(z)RET.end6、編寫鏈接配置文件:由于每個(gè)程序都需要一個(gè)鏈接配置文件,每個(gè)程序的鏈接配置文件根據(jù)實(shí)際情況的需要都略有不同,下面就為本實(shí)驗(yàn)的程序編寫一個(gè)鏈接配置文件,其它實(shí)驗(yàn)的鏈接配置文件都可以參考與本書配套的相應(yīng)例程來完成:/
13、*example4.cmd */vectors.obj /*中斷向量的目標(biāo)文件*/example4.obj /*產(chǎn)生目標(biāo)文件*/-o example4.out /*產(chǎn)生可執(zhí)行下載文件,文件名可以根據(jù)不同項(xiàng)目而定*/-m example4map /*產(chǎn)生存儲(chǔ)器映射文件,文件名可以根據(jù)不同項(xiàng)目而定 */MEMORY PAGE 0: /*定義程序存貯區(qū)*/ EPROG: origin = 0x4000, len = 0x3f80 VECT: origin = 0x7f80, len = 0x80 PAGE 1: /*定義數(shù)據(jù)存貯區(qū)*/SYSREGS: origin = 0x00, len = 0x6
14、0 BIOSREGS: origin = 0x60, len = 0x20 IDATA: origin = 0x80, len = 0x3f00 EDATA: origin = 0x8000, len = 0x8000SECTIONS .text :> EPROG PAGE 0 /*將.text 段映射到PAGE0 的EPROM 區(qū)*/.data :> EPROG PAGE 0 /*將.data 段映射到PAGE0 的EPROM 區(qū)*/.vectors: > VECT PAGE 0/*將中斷向量表定位到PAGE0 的VECS 區(qū)*/ .bss: > IDATA PAGE
15、 1 /*將.bss 段映射到PAGE1 的IDATA 區(qū)*/ STACK: > IDATA PAGE 1 /*將.stack 段映射到PAGE1 的IDATA 區(qū)*/7、編寫中斷向量表文件;/* vectors.asm */.title "vectors.asm" ;/*中斷向量表的文件名*/.ref _c_int00;start /*引用外部定義的標(biāo)號(hào)*/.sect ".vectors" ;/*定義初始化的段名*/B _c_int00; start /*引用start*/.end8、 對(duì)項(xiàng)目進(jìn)行編譯和鏈接: 把 example4.asm、vec
16、tors.asm、example4.cmd 依次添加到項(xiàng)目后,點(diǎn)擊ProjectCompile File,在項(xiàng)目編譯成功之后點(diǎn)擊ProjectBuild 選項(xiàng)對(duì)該項(xiàng)目進(jìn)行鏈接,生成*.out 文件。9、 裝載可執(zhí)行文件: 要讓程序代碼在DSP 內(nèi)部運(yùn)行必需將生成的*.OUT 文件裝載到DSP 內(nèi)部,裝載方法是點(diǎn)擊:FileLoad Programe 再選擇生成的example4.out 文件就可以將程序裝載到DSP 的內(nèi)部存儲(chǔ)器中。 10、運(yùn)行程序并查看結(jié)果: a)首先打開欲查看的數(shù)據(jù)空間:點(diǎn)擊ViewMemory,彈出“Memory Window Options”對(duì)話框,把欲查看的地址改為0x0080,如下圖所示。 b)點(diǎn)擊OK 按鈕,然后點(diǎn)擊DebugRun 讓程序在DSP 內(nèi)部運(yùn)行,最后點(diǎn)擊DebugH
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030全球及中國身份與數(shù)字信任行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 廣東金融學(xué)院《基礎(chǔ)分子生物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 和田職業(yè)技術(shù)學(xué)院《常微分方程緒論》2023-2024學(xué)年第一學(xué)期期末試卷
- 和田職業(yè)技術(shù)學(xué)院《光電專業(yè)英語》2023-2024學(xué)年第一學(xué)期期末試卷
- 常熟理工學(xué)院《醫(yī)學(xué)統(tǒng)計(jì)學(xué)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 德陽科貿(mào)職業(yè)學(xué)院《UI交互設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西安建筑科技大學(xué)《跨文化交流》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025至2030兒童樂園產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 河北化工醫(yī)藥職業(yè)技術(shù)學(xué)院《數(shù)論與密碼學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北中醫(yī)藥高等??茖W(xué)?!段膶W(xué)傳播學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年上海高中學(xué)業(yè)水平合格性考試歷史試卷真題(含答案)
- 2025年人教版七年級(jí)數(shù)學(xué)下冊(cè)期末測(cè)試卷
- 2025至2030年中國汽車輪轂軸承行業(yè)市場全景評(píng)估及發(fā)展趨勢(shì)研判報(bào)告
- 2025年《安全生產(chǎn)月》活動(dòng)總結(jié)報(bào)告
- 2025年江蘇高考真題化學(xué)試題(解析版)
- 小學(xué)一年級(jí)數(shù)學(xué)下冊(cè)應(yīng)用題100道
- 2024協(xié)警輔警考試公安基礎(chǔ)知識(shí)考試速記輔導(dǎo)資料
- 安徽省馬鞍山市2023-2024學(xué)年高一下學(xué)期期末教學(xué)質(zhì)量監(jiān)測(cè)化學(xué)試卷(含解析)
- 初三化學(xué)最后一課-主題班會(huì)【課件】
- 反詐騙(企業(yè)員工)講座培訓(xùn)課件
- 中國強(qiáng)軍之路課件
評(píng)論
0/150
提交評(píng)論