DSP尋址方式及指令系統_第1頁
DSP尋址方式及指令系統_第2頁
DSP尋址方式及指令系統_第3頁
DSP尋址方式及指令系統_第4頁
DSP尋址方式及指令系統_第5頁
已閱讀5頁,還剩22頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

會計學1DSP尋址方式及指令系統匯編語言書寫格式

[標號][:]助記符

[操作數1,操作數2,…]

[;注釋]

標號域助記符域

操作數域

注釋域

標號域不能放助記符,即指令符,否則編輯出錯!注釋域以分號;開頭,注釋行可以單獨占用一行或多行。#數據前綴表示立即數數據后綴B或b表示二進制常數;后綴Q或q表示八進制常數;后綴H或h表示十六進制常數匯編程序擴展名為.asm第1頁/共27頁TIDSP匯編語言書寫規范標號與變量必須從編輯窗口的第1列寫,指令(包括偽指令)決不能從第1列開始,包括宏指令。例如某匯編源程序:_c_int0: SETC INTM CLRC SXM CLRC OVM CLRC CNF第2頁/共27頁DSP源程序編程工具在任何文本編輯工具下都可以編寫源程序,例如,記事本、UltraEdit是一套功能強大的文本編輯器,可以編輯文本、十六進制、ASCII碼,可以取代記事本,內建英文單字檢查、C++及VB指令突顯,可同時編輯多個文件,可開多窗口,搜尋替換以及無限制的還原功能。

DSP集成開發環境CCS包含文本編輯器。第3頁/共27頁'C2的偽指令

C2XX偽指令包括:段定義偽指令、初始化常數偽指令、設置段程序計數器偽指令、引用文件偽指令、符號定義偽指令、存儲器分配偽指令、段分配偽指令。第4頁/共27頁DSP編程要特別說明的幾點DSP

匯編程序(.asm)使用段定義偽指令分段書寫,指令序列用代碼段偽指令.text引導,數據變量用未初始化數據段偽指令.bss引導,數據常量用初始化數據段偽指令.data引導。各種段在存儲空間的定位由命令鏈接文件規定。命令鏈接文件后綴為.cmd。還可以使用包含文件(.h)。包含文件偽指令使用形式.include“file.h”第5頁/共27頁常用的段定義偽指令.text默認的初始化程序段,通常包含有可執行程序代碼,存放于程序存儲器區域.data默認的初始化數據段(程序或數據區).bss默認的未初始化數據段,通常是為未初始化的變量預留空間(于數據區)。格式為:

.bss變量符號,保留的字數.sect——定義初始化后命名的段,常用于定義中斷向量表。.sect“段名”

第6頁/共27頁常用初始化常數偽指令定義字偽指令(定義整型數偽指令)格式:.int/.wordvalue1[,…,valuen]功能:在當前段連續存入1個或多個16位整數定義字節偽指令 格式:.bytevalue1,[,…,valuen] 功能:在當前段連續初始化1個或n個字節第7頁/共27頁常用引用文件偽指令包含偽指令 格式:.include[″]filename[″]功能:將另一個文件包含到.include偽指令處的文件中。定義全局符號偽指令格式:.def

/.globalsymbol1[,…,symboln]功能:在當前模塊定義一個或n個符號,供模塊或其它模塊使用。.def定義的符號是全局(外部)符號。第8頁/共27頁常用引用文件偽指令(續)引用全局符號偽指令 格式:.refsymbol1[,…,symboln] 功能:引用一個或n個全局符號供本模塊使用。第9頁/共27頁常用符號定義偽指令等值偽指令(符號與數值等價偽指令) 格式:符號.equ

數值 符號.set

數值

注:.equ與.set等價可互換,常用.set

第10頁/共27頁鏈接器命令文件(*.cmd)用.MEMORY偽指令詳細定義DSP器件內部及擴展存儲器存儲器起始地址和長度。用.SECTIONS偽指令告訴鏈接器如何組合輸入段以及在存儲器何處存放。

第11頁/共27頁MEMORY偽指令的表達式MEMORY {PAGE0:NAME[屬性]:origin(起始地址)=J0(絕對地址),length=L0(長度)

PAGE1:NAME[屬性]:origin(起始地址)=Jn(絕對地址),length=Ln(長度)

}PAGE0一般存程序;PAGE1存數據第12頁/共27頁SECTIONS偽指令的表達式SECTIONS:{段名:[特性,特性,…]

……段名:[特性,特性,…]}特性表達式常用形式:{}>NAME其中,NAME是用戶命名的“存儲器塊名”第13頁/共27頁2407_t1.cmd

(1)MEMORY說明MEMORY{PAGE0:VECS :origin=0000H,length=0040H/*PROGRAMPVECS :origin=0044H,length=0100H /*PeripheralInterruptVectors*/ PROG :origin=01000H,length=2500H /*FLASHonChip*/PAGE1: MMRS :origin=0000H,length=005FH/*MMRS*/ B2 :origin=0060H,length=0020H/*DARAMB2BLOCK*/ B01 :origin=0200H,length=0080H/*DARAMB0BLOCK*/B02 :origin=0280H,length=0080H B11 :origin=0300H,length=0080H/*DARAMB1BLOCK*/

第14頁/共27頁2407_t1.cmd

(2)SECTIONS說明SECTIONS{.vectors :{}>VECSPAGE0 /*InterruptVectorTable*/._c_int0 :{}>VECS PAGE0.pvecs :{}>PVECSPAGE0/*PeripheralINTERRUPTVECTORTABLE*//*.const :LOAD=PROGPAGE0,RUN=B01PAGE1*/.text :{}>PROGPAGE0 /*CODE */.bss :{}>B2PAGE1 /*存放液晶顯示定義的寄存器及一些常用寄存器*/.data :{}>B02PAGE1 /*FFTWorkingSpace--第15頁/共27頁COFF(CommonObjectFileFormat)公共目標文件格式DSP編譯器產生的目標文件為COFF文件結構提倡編程(C或匯編)時采用代碼段(Section或塊)和數據段的概念,有利于模塊化編程編程時不必考慮硬件,程序員也不需要指定或修改程序代碼或變量目標地址為程序編寫和程序移植提供了極大的方便第16頁/共27頁匯編(dspa.exe)與鏈接(dsplnk.exe)

編輯→匯編→鏈接如果程序未用任何段定義指令,匯編器自動將所有程序代碼與數據匯編到.text段,并產生*.obj文件——COFF文件鏈接器根據命令文件*.cmd確定各段存放地址。生成*.OUT文件,*.OUT不是純二進制代碼文件,而是包含代碼、符號表、代碼定位信息的復合文件。生成的MAP文件可以獲得變量、子程序等符號的具體地址。注意:MAP文件只列出全局變量的地址。在DSP的開發軟件CCS環境下可以完成編輯、匯編、鏈接和調試第17頁/共27頁頭文件*.hDSP的結構比較復雜,寄存器數量較多,映射地址難記IMR.set0004h;InterruptMaskRegisterGREG.set0005h;GlobalmemoryallocationRegister將具有特定功能的宏定義放在頭文件包含以上內容的頭文件,可以被開發同一DSP的任何匯編程序使用。例如TMS320LF2407A頭文件名為F2407regs.h,見教材《DSP控制器原理及應用》P132。第18頁/共27頁思考題.bss300H或在60HLDP#X;LARAR2,#X;

X為變量時語句結果不影響LDP#0;LARAR2,#60H;如果直接送數值有無命令文件則會出錯因此,程序中盡量不用具體數值表示地址或數量第19頁/共27頁宏指令/子程序宏匯編屬于高級匯編語言技術,可以簡化和縮短源程序但并沒有節省程序空間1.宏定義格式為:宏名字.macro

(形式參數)┅(宏定義體,即一段匯編程序).endm第20頁/共27頁宏指令定義舉例KICK_DOG .macro

;Watchdogresetmacro LDP #00E0h;DP-->7000h-707Fh SPLK #05555h,WDKEY

;WDCNTRisenabledtoberesetbynextAAh SPLK #0AAAAh,WDKEY

;WDCNTRisreset LDP #0h ;DP-->0000h-007Fh .endm第21頁/共27頁2.宏調用定義之后的宏名,可以象任何匯編指令一樣在程序中使用

CALL mS_DELAY ;Generatea50msdelay KICK_DOG ;ResetWDifnotdisabled

PHANTOMKICK_DOG;ResetsWDcounter B PHANTOM3.宏展開編譯程序在目標文件中,將調用宏的地方插入宏體的整個指令代碼第22頁/共27頁子程序結構第23頁/共27頁子程序調用第24頁/共27頁思考題1、定義全局符號偽指令.def

/.global

和引用全局符號偽指令.ref是在一個模塊中使用的?還是在兩個以上不同模塊中使用的?其中哪個偽指令可以重復使用?2、宏定義與子程序設計有什么相似之處與不同之處?3、.text與.sect都是代碼段偽指令,有什么區別?各有什么用途?第25頁/共27頁第8次課課外作業:用SBUC實現32

溫馨提示

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

評論

0/150

提交評論