SP第4章語言和偽指令_第1頁
SP第4章語言和偽指令_第2頁
SP第4章語言和偽指令_第3頁
SP第4章語言和偽指令_第4頁
SP第4章語言和偽指令_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第4 4章章 匯編語言和匯編語言和偽指令偽指令DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院1第第4 4章章 匯編語言和匯編語言和偽指令偽指令DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令2 采用匯編語言,用戶可以直接操作到處理器內部的采用匯編語言,用戶可以直接操作到處理器內部的工作寄存器和片內工作寄存器和片內RAM單元,能把數(shù)據(jù)的處理過程表述單元,能把數(shù)據(jù)的處理過程表述得非常具體和詳實。得非常具體和詳實。 匯編語言并不獨立于具體機器,是一種非常通用的匯編語言并不獨立于具體

2、機器,是一種非常通用的低級程序設計語言。低級程序設計語言。4.1 匯編語言程序設計匯編語言程序設計DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令34.1.1 匯編語言源程序格式匯編語言源程序格式 典型的匯編語言格式是四段式格式:典型的匯編語言格式是四段式格式: 標號段:標號段: 操作碼段操作碼段 操作數(shù)段操作數(shù)段 ; 注釋段注釋段 LABLE : OPCODE OPRAND ;COMMENT 其中操作碼段是必選項,任何語句都必須有操作碼其中操作碼段是必選項,任何語句都必須有操作碼段。如果是多個操作數(shù),中間用逗號

3、隔開。段。如果是多個操作數(shù),中間用逗號隔開。 P1:ADD #1 ;ACC加加1,結果保存在,結果保存在ACC中中 BCND P1,LEQ ;如果如果ACC0則轉到則轉到P1DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令44.1.2 常用偽指令介紹常用偽指令介紹指令語句指令語句 每一條指令語句在源程序匯編時都要產(chǎn)生可供計算每一條指令語句在源程序匯編時都要產(chǎn)生可供計算機執(zhí)行的指令代碼(即目標代碼),所以這種語句又叫機執(zhí)行的指令代碼(即目標代碼),所以這種語句又叫可執(zhí)行語句。每一條指令語句表示計算機具有的一個基可執(zhí)

4、行語句。每一條指令語句表示計算機具有的一個基本能力,如數(shù)據(jù)傳送,兩數(shù)相加或相減,移位等,而這本能力,如數(shù)據(jù)傳送,兩數(shù)相加或相減,移位等,而這種能力是在目標程序(指令代碼的有序集合)運行時完種能力是在目標程序(指令代碼的有序集合)運行時完成的,是依賴于汁算機內的中央處理器(成的,是依賴于汁算機內的中央處理器(CPU)、存儲)、存儲器、器、IO接口等硬件設備來實現(xiàn)的。接口等硬件設備來實現(xiàn)的。 DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令5偽指令語句偽指令語句 偽指令語句是用于指示匯編程序如何匯編源程序,所偽指令語

5、句是用于指示匯編程序如何匯編源程序,所以這種語句又叫命令語句。例如源程序中的偽指令語句告以這種語句又叫命令語句。例如源程序中的偽指令語句告訴匯編程序:該源程序如何分段,有哪些邏輯段在程序段訴匯編程序:該源程序如何分段,有哪些邏輯段在程序段中哪些是當前段,它們分別由哪個段寄存器指向;定義了中哪些是當前段,它們分別由哪個段寄存器指向;定義了哪些數(shù)據(jù),存儲單元是如何分配的等等。偽指令語句除定哪些數(shù)據(jù),存儲單元是如何分配的等等。偽指令語句除定義的具體數(shù)據(jù)要生成目標代碼外,其他均沒有對應的目標義的具體數(shù)據(jù)要生成目標代碼外,其他均沒有對應的目標代碼。偽指令語句的這些命令功能是由匯編程序在匯編源代碼。偽指令

6、語句的這些命令功能是由匯編程序在匯編源程序時,通過執(zhí)行一段程序來完成的,而不是在運行目標程序時,通過執(zhí)行一段程序來完成的,而不是在運行目標程序時實現(xiàn)的。程序時實現(xiàn)的。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令6DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令7條件匯編偽指令條件匯編偽指令 以下分兩種情況介紹條件匯編偽指令。以下分兩種情況介紹條件匯編偽指令。 (1) 第一種情況:第一種情況: .if well-defined e

7、xpression .elseif well-defined expression .else .endif (2) 第二種情況:第二種情況: .loopwell-defined expression .break well-defined expression .endloopDSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令84.2 C語言程序設計語言程序設計 用匯編語言編寫程序是一件繁雜的事情,開發(fā)周期用匯編語言編寫程序是一件繁雜的事情,開發(fā)周期相對較長。因此各個相對較長。因此各個DSP公司都推出了相應的高級

8、語言公司都推出了相應的高級語言(如(如C語言),使得語言),使得DSP芯片的軟件可以直接使用高級語芯片的軟件可以直接使用高級語言寫成。,從而大大提高言寫成。,從而大大提高DSP芯片的開發(fā)速度,也使程芯片的開發(fā)速度,也使程序的修改和移植變得十分方便。序的修改和移植變得十分方便。 C C語言程序文件的后綴名為語言程序文件的后綴名為.c .c。在該程序中實現(xiàn)。在該程序中實現(xiàn)DSPDSP要完成的功能,由開發(fā)人員編寫。要完成的功能,由開發(fā)人員編寫。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令9C編譯器概述編譯器概述 T

9、MS320C2xx C編譯器是一個功能齊全的優(yōu)化編譯編譯器是一個功能齊全的優(yōu)化編譯器。它的主要功能是把標準的器。它的主要功能是把標準的ANSI C語言程序轉換成語言程序轉換成TMS320 DSP芯片能夠識別執(zhí)行的匯編語言代碼。芯片能夠識別執(zhí)行的匯編語言代碼。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令104.3 調試時需要的五種文件調試時需要的五種文件 調試時需要以下五種文件:調試時需要以下五種文件:(1)C語言程序(語言程序(.c)或者匯編語言文件()或者匯編語言文件(.asm)(2)頭文件()頭文件(.h

10、)(3)庫文件()庫文件(rts2xx.lib)(4)命令文件()命令文件(.cmd)(5)復位和中斷向量文件)復位和中斷向量文件vectors.asmDSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令114.3.1 C語言文件文件或匯編語言文件語言文件文件或匯編語言文件該文件的擴展名為:該文件的擴展名為:*.c 或或*.asm;該文件內容為該文件內容為DSP所要完成功能的源程序代碼。所要完成功能的源程序代碼。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言

11、匯編語言和偽指令和偽指令124.3.2 頭文件頭文件頭文件的擴展名為:頭文件的擴展名為:*.h ;匯編語言頭文件:包含了各種寄存器的名稱和地址,此匯編語言頭文件:包含了各種寄存器的名稱和地址,此外,用戶還可以定義各種常量和宏;外,用戶還可以定義各種常量和宏;C語言頭文件:包含了語言頭文件:包含了C語言定義下的各種語言定義下語言定義下的各種語言定義下的各種寄存器和地址,還包含支持的各種寄存器和地址,還包含支持C語言的的各種庫函數(shù);語言的的各種庫函數(shù);頭文件必須放在頭文件必須放在C源程序的開始,并使用源程序的開始,并使用“include”語句聲明和添加?;蛘咴趨R編主程序的開始使用匯編偽語句聲明和添

12、加。或者在匯編主程序的開始使用匯編偽指令指令.include、.copy對頭文件進行調用。對頭文件進行調用。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令13頭文件部分寄存器和宏定義舉例:頭文件部分寄存器和宏定義舉例:;-IMR .set 0004h ;中斷屏蔽寄存器中斷屏蔽寄存器IFR .set 0006h ;中斷標志寄存器中斷標志寄存器;-DELAY_S .macro delay_value ;延時延時= 0.05s 延延 時計數(shù)時計數(shù)RPT #delay_valueNOP.endm調用宏:調用宏:DELA

13、Y_S 0AC5HDSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令14頭文件頭文件F2407.h,在該文件中寄存器都以指針方式進行尋址。,在該文件中寄存器都以指針方式進行尋址。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令154.3.3 命令文件命令文件 擴展名為擴展名為*.cmd ,實現(xiàn)對程序存儲空間和數(shù)據(jù)存儲器,實現(xiàn)對程序存儲空間和數(shù)據(jù)存儲器空間的分配;它由三部分組成:一是輸入輸出文件和選空間的分配;它由三部分組成:一是輸入輸

14、出文件和選項等(該部分可以省略),二是目標存儲器定義,使用項等(該部分可以省略),二是目標存儲器定義,使用偽指令偽指令MEMORY定義,三是各段的定位,由定義,三是各段的定位,由SECTIONS命令定義命令定義 。 MEMORY偽指令用來標示實際存在目標系統(tǒng)中并且偽指令用來標示實際存在目標系統(tǒng)中并且可被使用的存儲器范圍。每個存儲器范圍有名字、起始可被使用的存儲器范圍。每個存儲器范圍有名字、起始地址和長度。地址和長度。 SECTIONS偽指令的作用是:描述輸入段怎樣被組偽指令的作用是:描述輸入段怎樣被組合到輸出段;在可執(zhí)行程序內定義輸出段;規(guī)定在存儲合到輸出段;在可執(zhí)行程序內定義輸出段;規(guī)定在存

15、儲器內何處放置輸出段;允許重命名輸出段。器內何處放置輸出段;允許重命名輸出段。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令16MEMORYPAGE0:/*程序存儲器程序存儲器*/name1(attr): origin=constant,length=constant;namen(attr): origin=constant,length=constant;PAGE1:/*數(shù)據(jù)存儲器數(shù)據(jù)存儲器*/name1(attr): origin=constant,length=constant;namen(attr):

16、origin=constant,length=constant;PAGE2:/*I/O空間空間*/name1(attr): origin=constant,length=constant;namen(attr): origin=constant,length=constant;DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令17 SECTIONSname:property,property,property,name:property,property,property,name:property,propert

17、y,property,DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令18 每一個以每一個以name開始的段的規(guī)格說明定義了一個輸出開始的段的規(guī)格說明定義了一個輸出段。在段名之后是特性列表,定義段的內容以及它們是段。在段名之后是特性列表,定義段的內容以及它們是怎樣被分配的。怎樣被分配的。(1) 裝載位置,規(guī)定段將被裝載在存儲器內何處。裝載位置,規(guī)定段將被裝載在存儲器內何處。(2) 運行位置,定義段將在存儲器內何處運行。運行位置,定義段將在存儲器內何處運行。(3) 輸入段,定義組成輸出段的輸入段。輸入段,定義組成輸

18、出段的輸入段。(4) 段類型,定義特定段類型的標志。段類型,定義特定段類型的標志。(5) 填充值,定義用于填充未初始化空位的數(shù)值。填充值,定義用于填充未初始化空位的數(shù)值。 DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令19命令文件舉例命令文件舉例MEMORY偽指令和偽指令和SECTION偽指令:偽指令:MEMORYPAGE0:VECS:origin=0000h,length=0040h/* 程序程序復位復位*/PVECS:origin=0040h,length=0F00h/* 外設中斷向量外設中斷向量*/PM:

19、origin=1000h,length=6000hPM1:origin=7000h,length=1000hPM2:origin=8000h,length=800h/* 如果如果PON=1,則為,則為SARAM*/B0_PM:origin=0FF00h,length=100h/* 如果如果CNF=1,則為,則為DARAM B0塊塊*/PAGE1:MMRS:origin=0000h,length=0060hB2:origin=0060h,length=0020h/*DARAM B2 塊塊*/ B0:origin=0200h,length=0100h/*如果如果CNF=0則為則為DARAM B0

20、塊塊*/B1:origin=0300h,length=0100h/* DARAM B1塊塊*/SARAM:origin=0800h,length=0800h/* 如果如果DON=1則為則為SARAM*/ PERIPH:origin=7000h,length=1000h/* 外設幀外設幀*/EXTRAM:origin=8000h,length=8000h/* 外部擴展外部擴展RAM*/PAGE2:IO_EX:origin=0000h,length=0FFF0hIO_IN:origin=0FFF0h,length=0FhDSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息

21、學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令20SECTIONS.reset:VECSPAGE0/* 復位中斷向量復位中斷向量*/.vectors:VECSPAGE0/* 中斷向量表中斷向量表*/.pvecs:PVECSPAGE0/* 外設中斷向量表外設中斷向量表*/.text:PMPAGE0/* 代碼代碼*/.table:PMPAGE0.bss:B1PAGE1.data0:B0PAGE1.data2:B2PAGE1.stack:SARAMPAGE1DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令214.

22、3.4 中斷向量文件中斷向量文件中斷向量文件中斷向量文件vectors.asm定義了系統(tǒng)中各種中斷服務程序定義了系統(tǒng)中各種中斷服務程序的的入口地址入口地址。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令224.3.5 庫文件庫文件rts2xx.librts2xx.lib庫文件可在庫文件可在C:CCStudio_v3.1C2400cgtoolslib下找到,不得修改,完全復制到需要的地方。下找到,不得修改,完全復制到需要的地方。rts2xx.lib包含以下內容:包含以下內容:ANSIC標準庫;標準庫;系統(tǒng)啟動程序

23、系統(tǒng)啟動程序_c_int0;允許允許C訪問特殊指令的函數(shù)和宏。訪問特殊指令的函數(shù)和宏。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令234.4 C語言和匯編語言混合編程方法語言和匯編語言混合編程方法4.4.1 在在C語言中嵌入?yún)R編語言程序語言中嵌入?yún)R編語言程序1. 在在C語言中嵌入單條匯編語句語言中嵌入單條匯編語句/系統(tǒng)初始化程序系統(tǒng)初始化程序void inital( )asm(setc SXM) ;/SXM位置位置1,抑制符號擴展位,抑制符號擴展位asm(clrc OVM) ;/OVM位清位清0,累加器中結果

24、正常溢出,累加器中結果正常溢出asm(clrc CNF);/CNF位清位清0,B0被映射到數(shù)據(jù)存儲器空間被映射到數(shù)據(jù)存儲器空間DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令242. 在在C語言中嵌入實現(xiàn)某一完整功能的多條匯編語句語言中嵌入實現(xiàn)某一完整功能的多條匯編語句 在在C語言中調用匯編語言編寫的子程序,語言中調用匯編語言編寫的子程序,用戶必須遵用戶必須遵循相關規(guī)則自行維護模塊的入口和出口代碼,循相關規(guī)則自行維護模塊的入口和出口代碼,主要應弄主要應弄清楚堆棧的使用情況。清楚堆棧的使用情況。DSP原理及應用原理

25、及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令254.5 分開編寫分開編寫C語言和匯編語言程序語言和匯編語言程序1. 分離的分離的C語言程序和匯編語言程序接口語言程序和匯編語言程序接口 須注意:在編寫匯編語言程序時,必須遵守有關調須注意:在編寫匯編語言程序時,必須遵守有關調用規(guī)則和寄存器規(guī)則,這樣不會影響用規(guī)則和寄存器規(guī)則,這樣不會影響C語言程序的運行環(huán)語言程序的運行環(huán)境。境。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令262. 在在C語言程序中

26、訪問匯編語言程序的變量語言程序中訪問匯編語言程序的變量 2種操作方法:種操作方法:(1)匯編變量在匯編變量在.bss段中定義段中定義采用采用.bss命令定義變量命令定義變量采用采用.global命令定義變量命令定義變量在變量名前加一下劃線在變量名前加一下劃線“_”在在C語言程序中將變量說明為外部變量語言程序中將變量說明為外部變量DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令27(2)用用.set和和.global命令定義的常數(shù)。命令定義的常數(shù)。在匯編語言中將常數(shù)符號定義成全局常數(shù);在匯編語言中將常數(shù)符號定義成全

27、局常數(shù);在在C語言程序中訪問匯編語言程序中的常數(shù)時,應語言程序中訪問匯編語言程序中的常數(shù)時,應在常數(shù)前加一個地址符號在常數(shù)前加一個地址符號“&”DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令283. 在匯編語言程序中訪問在匯編語言程序中訪問C語言程序變量語言程序變量在在C語言程序中定義變量語言程序中定義變量(如如x);在匯編語言程序中使用前面加下劃線在匯編語言程序中使用前面加下劃線“_”(如如_x)。DSP原理及應用原理及應用北京理工大學珠海學院信息學院北京理工大學珠海學院信息學院第第4 4章章 匯編語言匯編語言和偽指令和偽指令294.6 用用C語言處理語言處理 DSP中斷中斷1. 通過軟件識別中斷標志的方法實現(xiàn)可屏蔽的中斷通過軟件識別中斷標志的方法實現(xiàn)可屏蔽的中斷 例如,要實現(xiàn)捕捉單元例如,要實現(xiàn)捕捉單元4的中斷的中斷(CAP4INT),則先建立則先建立一個復位和中斷向量文件一個復位和中斷向量文件vectors.asm.title vectors.asm.ref _c_int0,_nothing,_capint ;定義每個需要用到的符號定義每個需要用到的符號.sect .vectorsreset: b _c_int0 ;復位向量復位向量INT1:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論