- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bss区段-交通大学.ppt
TMS320C6x組合語言翻譯器 ;TMS320C6x 組合語言翻譯器;組合語言之常數及符元表示法;
符元 (Symbol) 是用來表示程式位址標籤 (Label)、常數、及替代符元之用,它可由字母 (A-Z、a-z)、數字 (0-9)、”_” 及 ”$” 符號之字串組成,最多可含 200個字元,且第一個字元不能是數字,它是區分大小寫的 (Case sensitive),但可使用–c 附加功能選項使 Assembler 不區分大小寫。
符元作為程式位址標籤時,可將它放在 .global、.ref、.def、.bss 虛指令的運算元位置,並在某一行程式的第一列位置標示之。它也可以作為程式或巨集內部位址標籤使用,此時以 “$” 加一數字 (如 $1) 或在其名稱後加一 “?” (如 mylab?)表示。
可使用符號及常數運算式來取代一般常數。
;虛指令(Directives);設定資料起始值及保留記憶體空間之虛指令:
.bes 和 .space 是用來保留一塊記憶體空間;
.byte、.half、.word 分別用來設定ㄧ個或多個 byte、halfword、word 整數的數值;
.short 用來設定ㄧ個或多個 halfword 整數的數值;
.int 及 .long 用來設定ㄧ個或多個 32-bit 整數的數值;
.float 和 .double 分別用來設定ㄧ個或多個 單精準及 雙精準浮點數的數值;
.field 是設定多個 bits 的數值,使用時,資料位址將不會增加,直到 32 位元資料的數值全部給定;
.char 用來設定ㄧ個或多個字元;
.string 用來設定ㄧ個或多個字串。
例如:
res1 .space 10; res1 指在預留 10個bytes的第一個 byte位址
res2 .bes 10; res2 指在預留 10個bytes的最後一個 byte位址
;令區段程式計數器(Section program counter)對齊記憶體位址邊界之虛指令
.align n 是用來將下一行程式或下一筆資料的位址設定到 byte (n=1)、halfword (n=2)、word (n=4)、double word (n=8) 或 page (n=128) 位址邊界,
.align 4
.word 10h ;是將常數 10h 存在 word 位址邊界
引用其他檔案程式或符元之虛指令:
.def - 用來在現在的程式檔案中定義ㄧ個變數符元;
.global - 用來定義ㄧ個全域或 external 變數符元;
.ref - 用來宣告一個現在的程式檔案要使用且已在其它程式檔案定義之變數符元
.def X, Y, Z ;X、Y、Z在此檔案中都可使用
.global A, B ;A、B在其他檔案能使用
A .word 10 ;只要使用 .ref A, B in other files
B .word 20
;
常數定義虛指令
.asg 是用來設定一個字元串給一個變數符元;
.set 及 .eqv 是用來設定一個常數值給一個變數符元;
.eval 是用來執行算數運算式,並將結果設定給一個變數符元。
例如
.asg ”ABC”,y ; 設定 y=ABC
x .set 1
.loop ; 重複編譯
.byte x*10h
.break x = 4 ; x=4 時停止重複編譯
.eval x+1, x ; 常數運算
.endloop
;
.struct/.endstruct及.tag 虛指令是用來建立像 C 語言中的結構資料組態,由下面的例子可以看出他們的使用法
COORDT .struct ; 結構之建立
X .byte ; 定義結構中之資料組態
Y .byte
T_LEN .endstruct
COORD .tag COORDT ; 設定變數 COORD 之資料結構
.bss COORD, T_LEN ; T_LEN是結構變數所含之 byte 數
LDB *B14(COORD.Y), A2 ; 結構變數之使用
.end 表示程式的結束
;巨集指令(Macro);程式連結器 (Linker);
–l filename
用以設定所欲連結之輸入函式庫或命令檔名稱。
-heap size
用以設定可執行檔所使用之堆疊 (stack) 大小。
-c
用以將未設定初始值之資料記憶體設定為零。
;TMS320C6xC語言翻譯器 ;TMS320C6x C語言資料型態;新的關鍵字;
near、far
文档评论(0)