匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論