




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、11C H A P T E RC/匯編匯編語言初步語言初步2提要提要1C語言初步語言初步代碼產(chǎn)生工具代碼產(chǎn)生工具C優(yōu)化器優(yōu)化器C的數(shù)據(jù)類型的數(shù)據(jù)類型3軟件開發(fā)過程及開發(fā)工具1建立源程序2C編譯器(C Compiler)3匯編器(Assembler)4連接器(Linker)5調(diào)試工具6十六進(jìn)制轉(zhuǎn)換公用程序(Hex Conversion Utility) 4TMS320 DSP軟件開發(fā)流程5代碼開發(fā)流程代碼開發(fā)流程6建議的C程序開發(fā)流程C程序C程序優(yōu)化用線性匯編改寫關(guān)鍵代碼段7C程序、標(biāo)準(zhǔn)匯編、線性匯編的編譯8一、C的代碼產(chǎn)生工具新9編譯命令編譯器選項(xiàng)編譯器選項(xiàng)CL6x -g file1.c fi
2、le2.asm file.sa file3 -s -as -z .標(biāo)準(zhǔn)匯編直標(biāo)準(zhǔn)匯編直接調(diào)用匯編器接調(diào)用匯編器-z調(diào)用連接器調(diào)用連接器線性匯編調(diào)用匯編優(yōu)化器線性匯編調(diào)用匯編優(yōu)化器無擴(kuò)展名默認(rèn)為無擴(kuò)展名默認(rèn)為C文件文件10CL6x -g -s file.c -z link.cmd -o file.out -l rts6201.lib-z調(diào)用連接器調(diào)用連接器連接器命令文件連接器命令文件 運(yùn)行支持庫運(yùn)行支持庫 輸出文件名輸出文件名連接器選項(xiàng)11常用的編譯、匯編、連接選項(xiàng)選項(xiàng)功能備注-g使能符號(hào)調(diào)試編譯選項(xiàng)-s在 C 編譯器生成的.asm 文件中,使能 C 語句和匯編指令交叉列表編譯選項(xiàng)-on啟動(dòng)C優(yōu)
3、化器的最高級(jí)別優(yōu)化編譯選項(xiàng)-pm與-o3合用,使能程序級(jí)優(yōu)化編譯選項(xiàng)-al生成匯編器列表文件匯編選項(xiàng)-as保留匯編符號(hào),用于調(diào)試匯編選項(xiàng)-z啟動(dòng)連接器連接選項(xiàng)-o可執(zhí)行輸出文件連接選項(xiàng)-m映射文件名(.map)連接選項(xiàng)-l運(yùn)行支持庫連接選項(xiàng)12二、C優(yōu)化器優(yōu)化選項(xiàng)作用優(yōu)化級(jí)別-o0優(yōu)化寄存器的使用-o1本地優(yōu)化-o2或-o全局優(yōu)化-o3文件級(jí)優(yōu)化低高 經(jīng)過C優(yōu)化器的優(yōu)化,以及其它C語言優(yōu)化后, C代碼效率可達(dá)7080 用優(yōu)化選項(xiàng)啟動(dòng)優(yōu)化器選項(xiàng)13C優(yōu)化器的使用步驟建議 不帶優(yōu)化選項(xiàng)進(jìn)行編譯(功能驗(yàn)證)cl6x -g -s file.c -z 用優(yōu)化選項(xiàng)-o2進(jìn)行編譯(-o2是與符號(hào)調(diào)試兼容的最
4、高優(yōu)化級(jí)別)cl6x -g o file.c -z 用最高級(jí)別優(yōu)化選項(xiàng)進(jìn)行編譯cl6x -o3 -pm file.c -z以上每個(gè)步驟都需要進(jìn)行功能驗(yàn)證注意14C62xx C 數(shù)據(jù)類型注意15提要提要2匯編語言初步匯編語言初步匯編代碼的結(jié)構(gòu)匯編代碼的結(jié)構(gòu)匯編程序的構(gòu)成匯編程序的構(gòu)成編寫簡單算法:編寫簡單算法:y = mx+b16一、匯編代碼的構(gòu)成label: | cond instruction .unit operand; comment標(biāo)號(hào):代碼或變量地址條件寄存器條件寄存器指令: 助記符(mnemonic) 偽指令(directive)功能單元功能單元(可選可選)操作數(shù): 寄存器 常量
5、指針注釋 x .int 10 MPY .M1 A1, A3, A7 | ADD .L1 x A2, B2, A5 17常用偽指令匯編指令說明.sect定義一個(gè)代碼段或數(shù)據(jù)段.usect定義一個(gè)未初始化數(shù)據(jù)段.int.long.word定義和初始化32位變量.short.half定義和初始化16位變量.byte定義和初始化8位變量在在C語言里語言里long是是40位,在匯編語言里位,在匯編語言里long是是32位位注意18二、匯編程序的構(gòu)成二、匯編程序的構(gòu)成程序數(shù)據(jù)結(jié)構(gòu)算法程序數(shù)據(jù)結(jié)構(gòu)算法數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)算法算法C程序的數(shù)據(jù)結(jié)構(gòu)和算法實(shí)現(xiàn)19匯編程序數(shù)據(jù)結(jié)構(gòu)匯編程序數(shù)據(jù)結(jié)構(gòu)用匯編語言聲明數(shù)據(jù)結(jié)構(gòu)
6、用匯編語言聲明數(shù)據(jù)結(jié)構(gòu)20匯編程序算法匯編程序算法用匯編語言編寫算法用匯編語言編寫算法21完整的匯編程序結(jié)構(gòu).sect “myData”0.sect “myCode”startLD .D1 *A0,A1 . . .ST .D1 A7,*A6 endB endNOP 522三、用匯編指令編寫y=mx+b1.數(shù)據(jù)取入寄存器:m,x,b存儲(chǔ)器寄存器1a. 初始化數(shù)據(jù)指針1b. 取數(shù)據(jù)2.乘法3.加法4.存儲(chǔ)數(shù)據(jù):y寄存器存儲(chǔ)器231a.指針初始化指針初始化32位常量位常量MVK .S1m, A0MVKH.S1m, A0; &mA0MVK .S1
7、x, A2MVKH.S1x, A2; &xA2MVK .S1b, A4MVKH.S1b, A4; &bA424指令MVKMVK把一個(gè)把一個(gè)16位常數(shù)放入寄存器位常數(shù)放入寄存器251b.取數(shù)據(jù)LDH .D1*A0, A1; 取取mLDH .D1*A2, A3; 取取xLDH .D1*A4, A5; 取取bNOP426LD/ST指令三種三種Load指令,對應(yīng)不同長度的數(shù)據(jù)指令,對應(yīng)不同長度的數(shù)據(jù) LDW取取32位字位字(word) LDH取取16位半字位半字(short) LDB取取8位字節(jié)位字節(jié)(byte)對無符號(hào)數(shù)對無符號(hào)數(shù)(字節(jié)、字節(jié)、16位半字位半字) LDBU LDHU指
8、令延遲:四個(gè)延遲間隙指令延遲:四個(gè)延遲間隙三個(gè)存儲(chǔ)指令三個(gè)存儲(chǔ)指令 STW STH STB數(shù)據(jù)取入寄存器后進(jìn)行符號(hào)擴(kuò)展無符號(hào)擴(kuò)展272.乘法MPY .M1 A1, A3, A7NOP 28乘法指令 四種乘法指令四種乘法指令MPY(U/US/SU)16LSB16LSBMPYH(U/US/SU) 16MSB16MSBMPYH(U/S)L(U/S) 16MSB16LSBMPYL(U/S)H(U/S)16LSB16MSB 指令延遲槽:指令延遲槽:1 兩個(gè)乘法單元可以在一個(gè)周期內(nèi)做兩次乘法兩個(gè)乘法單元可以在一個(gè)周期內(nèi)做兩次乘法293.加法.L1.S1.D1或或ADD.? 應(yīng)該使用哪個(gè)功能單元?應(yīng)該使用哪
9、個(gè)功能單元?ADD .?A5, A7, A7304.存儲(chǔ)結(jié)果31完整的y=mx+b匯編程序.title lab.asm/*定義數(shù)據(jù)結(jié)構(gòu)*/.sect myData”m .short 10 x.short 5b.short 2y.short 0/*算法*/.sect myCode/*指針初始化*/init:mvk .s1 m,A0;A0=&mmvkh .s1 m,A0mvk .s1 x,A2 ;A2=&xmvkh .s1 x,A2mvk .s1 b,A4;A4=&bmvkh .s1 b,A4mvk .s1 y,A6 ; A6=&ymvkh .s1 y,A6/*取數(shù)據(jù)*/ldh .d1 *A0,A1 ; A1= mldh .d1 *A2,A3 ; A3=xldh .d1 *A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 尋找漢服大使活動(dòng)方案
- 小學(xué)作文賣書活動(dòng)方案
- 室內(nèi)團(tuán)建破冰活動(dòng)方案
- 安排部署活動(dòng)方案
- 室內(nèi)搞笑活動(dòng)方案
- 完達(dá)山酸奶活動(dòng)方案
- 安排宴請活動(dòng)方案
- 室外課間活動(dòng)方案
- 宿舍團(tuán)結(jié)建設(shè)活動(dòng)方案
- 小學(xué)勤奮活動(dòng)方案
- 雨季行車安全培訓(xùn)
- 廣西南寧市英語小升初試卷及解答參考(2024-2025學(xué)年)
- 2016年北京市中考真題數(shù)學(xué)試題(解析版)
- 智能客服培訓(xùn)手冊
- 個(gè)人雇護(hù)工簽訂協(xié)議書范本范本
- 山東省濰坊市2024-2025學(xué)年高二生物下學(xué)期期末考試試題
- 2024年蘇教版四年級(jí)數(shù)學(xué)上冊全冊教案
- 初++中數(shù)學(xué)設(shè)計(jì)學(xué)校田徑運(yùn)動(dòng)會(huì)比賽場地+課件++人教版七年級(jí)數(shù)學(xué)上冊
- 《衛(wèi)星導(dǎo)航系統(tǒng)》全套教學(xué)課件
- 2023-2024學(xué)年山東省菏澤市東明縣八年級(jí)(下)期末數(shù)學(xué)試卷(含答案)
- 江西省新余市2023-2024學(xué)年七年級(jí)下學(xué)期期末數(shù)學(xué)試題
評論
0/150
提交評論