




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、湖北師范學(xué)院物理與電子科學(xué)學(xué)院 匯編語(yǔ)言程序設(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 語(yǔ)言編寫的,保存類型選擇*.C,本實(shí)驗(yàn)中的例程是使用匯編語(yǔ)言編寫的,所以選擇*.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)例程來(lái)完成:/*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 語(yǔ)言編寫的,保存類型選擇*.C,本實(shí)驗(yàn)中的例程是使用匯編語(yǔ)言編寫的,所以選擇*.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)例程來(lái)完成:/
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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版小學(xué)語(yǔ)文三年級(jí)下冊(cè)第八單元試卷1
- 2023-2024學(xué)年廣東省清遠(yuǎn)市四校高二下學(xué)期期中聯(lián)考語(yǔ)文試題(解析版)
- 探究春分的奧秘
- 塑造品格小戰(zhàn)士
- 碩士研究生生存指南
- 梅里斯達(dá)斡爾族區(qū)2025屆小升初數(shù)學(xué)檢測(cè)卷含解析
- 山西省臨晉中學(xué)2025屆高三下學(xué)期大聯(lián)考卷Ⅰ生物試題試卷含解析
- 泰山學(xué)院《可靠性技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 內(nèi)蒙古翁牛特旗2024-2025學(xué)年初三下學(xué)期第一次教學(xué)質(zhì)量診斷性考試生物試題試卷含解析
- 山東省臨沂市臨沭縣一中2025屆高三一輪復(fù)習(xí)階段性考試(歷史試題理)試題含解析
- 華為管理面試題及答案
- 2024-2025學(xué)年統(tǒng)編版小學(xué)道德與法治三年級(jí)下冊(cè)期中考試測(cè)試卷附答案
- 智能垃圾桶設(shè)計(jì)方案資料
- 2025陜西漢中漢源電力(集團(tuán))限公司招聘56人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年北京市西城區(qū)中考一模道德與法治試卷(含答案)
- 新聞報(bào)道的寫作及范例課件
- 2025-2030中國(guó)CAD-CAM牙科系統(tǒng)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 【9數(shù)一?!?025年安徽省合肥市第四十五中學(xué)九年級(jí)中考數(shù)學(xué)一模試卷
- 年產(chǎn)30萬(wàn)噸生物航煤項(xiàng)目可行性研究報(bào)告(僅供參考)
- (四調(diào))武漢市2025屆高中畢業(yè)生四月調(diào)研考試 語(yǔ)文試卷(含答案詳解)
- 公司事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度
評(píng)論
0/150
提交評(píng)論