DSP尋址方式及指令系統(tǒng)_第1頁(yè)
DSP尋址方式及指令系統(tǒng)_第2頁(yè)
DSP尋址方式及指令系統(tǒng)_第3頁(yè)
DSP尋址方式及指令系統(tǒng)_第4頁(yè)
DSP尋址方式及指令系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1DSP尋址方式及指令系統(tǒng)匯編語(yǔ)言書(shū)寫(xiě)格式

[標(biāo)號(hào)][:]助記符

[操作數(shù)1,操作數(shù)2,…]

[;注釋]

標(biāo)號(hào)域助記符域

操作數(shù)域

注釋域

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

DSP集成開(kāi)發(fā)環(huán)境CCS包含文本編輯器。第3頁(yè)/共27頁(yè)'C2的偽指令

C2XX偽指令包括:段定義偽指令、初始化常數(shù)偽指令、設(shè)置段程序計(jì)數(shù)器偽指令、引用文件偽指令、符號(hào)定義偽指令、存儲(chǔ)器分配偽指令、段分配偽指令。第4頁(yè)/共27頁(yè)DSP編程要特別說(shuō)明的幾點(diǎn)DSP

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

.bss變量符號(hào),保留的字?jǐn)?shù).sect——定義初始化后命名的段,常用于定義中斷向量表。.sect“段名”

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

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

數(shù)值 符號(hào).set

數(shù)值

注:.equ與.set等價(jià)可互換,常用.set

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

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

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

}PAGE0一般存程序;PAGE1存數(shù)據(jù)第12頁(yè)/共27頁(yè)SECTIONS偽指令的表達(dá)式SECTIONS:{段名:[特性,特性,…]

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

(1)MEMORY說(shuō)明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頁(yè)/共27頁(yè)2407_t1.cmd

(2)SECTIONS說(shuō)明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頁(yè)/共27頁(yè)COFF(CommonObjectFileFormat)公共目標(biāo)文件格式DSP編譯器產(chǎn)生的目標(biāo)文件為COFF文件結(jié)構(gòu)提倡編程(C或匯編)時(shí)采用代碼段(Section或塊)和數(shù)據(jù)段的概念,有利于模塊化編程編程時(shí)不必考慮硬件,程序員也不需要指定或修改程序代碼或變量目標(biāo)地址為程序編寫(xiě)和程序移植提供了極大的方便第16頁(yè)/共27頁(yè)匯編(dspa.exe)與鏈接(dsplnk.exe)

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

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

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

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

;WDCNTRisenabledtoberesetbynextAAh SPLK #0AAAAh,WDKEY

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

CALL mS_DELAY ;Generatea50msdelay KICK_DOG ;ResetWDifnotdisabled

PHANTOMKICK_DOG;ResetsWDcounter B PHANTOM3.宏展開(kāi)編譯程序在目標(biāo)文件中,將調(diào)用宏的地方插入宏體的整個(gè)指令代碼第22頁(yè)/共27頁(yè)子程序結(jié)構(gòu)第23頁(yè)/共27頁(yè)子程序調(diào)用第24頁(yè)/共27頁(yè)思考題1、定義全局符號(hào)偽指令.def

/.global

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論