版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、BIT/TI,第七講 連接器,1,第七講 數(shù)據(jù)訪問與程序控制,BIT/TI,第七講 連接器,2,學(xué)習(xí)內(nèi)容,一、定界(alignment)二、操作數(shù)數(shù)據(jù)交叉通路、地址交叉通路、條件交叉通路指針操作數(shù)與循環(huán)緩存區(qū)有限字長效應(yīng)問題三、程序控制子程序調(diào)用與返回程序跳轉(zhuǎn)四、實驗,,,,,BIT/TI,第七講 連接器,3,一、定界,定界:數(shù)據(jù)或代碼在存儲器內(nèi)的開始地址有一定要求常數(shù)變量代碼,BIT/TI,第七講 連接器,4,數(shù)
2、據(jù)定界原則,數(shù)據(jù)類型決定:定界、存取指令,數(shù)據(jù)類型定界(開始存放地址)LD/ST指令.byte無限制LDB/STB.short/.half2的整數(shù)倍(1 LSB=0)LDH/STH.word/.int4的整數(shù)倍word(2 LSB=00)LDW/STW,BIT/TI,第七講 連接器,5,常數(shù)定界,編譯器會根據(jù)常數(shù)類型自動定界,為避免存儲器浪費,定義時應(yīng)遵循先大后小的原則,,v .short 20h
3、,BIT/TI,第七講 連接器,6,變量定界,省去alignment域?,,var_name.usect“sect_name”, #bytes, alignment.bss var_name, #bytes, alignment,定界信息可選,,,BIT/TI,第七講 連接器,7,錯誤定界,BIT/TI,第七講 連接器,8,數(shù)據(jù)類型要與存取指令一致,BIT/TI,第七講 連接器,9,數(shù)據(jù)定界練習(xí),1) 定義一個16位長的s
4、hort類型變量m.usect“vars”, __, __2) 定義一個word類型數(shù)組,元素個數(shù)20n.usect“vars”, __, __,BIT/TI,第七講 連接器,10,代碼定界,連接器自動按照256 bits定界代碼的起始存放地址必須是256的整數(shù)倍,即8 LSB = 0。,,BIT/TI,第七講 連接器,11,定界小結(jié),數(shù)據(jù)類型決定定界方式和訪問方式定義變量時必須填寫定界信息為節(jié)省存儲空間,應(yīng)按
5、照word, short, byte的順序定義數(shù)據(jù)無需考慮常量的定界問題:m.byte10無需考慮代碼的定界問題,,BIT/TI,第七講 連接器,12,二、操作數(shù),BIT/TI,第七講 連接器,13,操作數(shù):交叉通路-Cross Paths,數(shù)據(jù)交叉通路(.L, .S, .M)地址交叉通路(.D)條件交叉通路(所有單元)條件寄存器:A1, A2, B0, B1, B2,BIT/TI,第七講 連接器,14,BIT/TI,
6、第七講 連接器,15,數(shù)據(jù)交叉通路,BIT/TI,第七講 連接器,16,地址交叉通路,CPU內(nèi)部總線,地址交叉通路-指針寄存器來自對側(cè)寄存器,LDW.D1 *A0, A5LDW.D1 *A0, B5,BIT/TI,第七講 連接器,17,地址交叉通路,LDW .D1 *PTR, RegSTW .D1 Reg, *PTR,,,數(shù)據(jù)寄存器,指令功能單元和指針寄存器必須同側(cè)數(shù)據(jù)寄存器如果與功能單元不同側(cè),即使用了地址交叉通道,BIT
7、/TI,第七講 連接器,18,在并行存取指令中使用地址交叉通路的限制,BIT/TI,第七講 連接器,19,條件交叉通路,所有指令都可以是條件指令條件寄存器可以與功能單元不同側(cè),而且不占用數(shù)據(jù)交叉通路或地址交叉通路例子[B2] ADD.L1xA2, B0, A4[!A1] MPY.M2xB0, A5, B4,BIT/TI,第七講 連接器,20,交叉通路-小結(jié),數(shù)據(jù)交叉通路只能用于源寄存器一個執(zhí)行包內(nèi),每側(cè)的數(shù)據(jù)交
8、叉通路只能用一次地址交叉通路指針寄存器與功能單元必須在同側(cè)只能用于LD/ST指令的數(shù)據(jù)寄存器并行存取指令:只能都使用或都不使用地址交叉通路條件交叉通路沒有限制,BIT/TI,第七講 連接器,21,交叉通路-練習(xí),下面的指令中使用了哪些交叉通路?,請判斷上面的指令是否能通過編譯?,,BIT/TI,第七講 連接器,22,操作數(shù):指針操作數(shù),偏移地址disp是5bit常量或寄存器 若基地址寄存器為B14/B15, 則偏移地址可
9、以是15bit常量 指針按照線性尋址修改,或采用循環(huán)尋址修改,BIT/TI,23,循環(huán)尋址,在卷積、相關(guān)、FIR等應(yīng)用中用來實現(xiàn)一個或兩個滑動窗。,BIT/TI,第七講 連接器,24,一個采樣周期后,BIT/TI,第七講 連接器,25,兩個采樣周期后,BIT/TI,第七講 連接器,26,循環(huán)尋址指針的修改,8個寄存器可以用于循環(huán)尋址A4-A7,B4-B7指針的使用與線性尋址指針相似,只是地址修改稍有不同只能在循環(huán)緩存區(qū)的地址范
10、圍內(nèi)修改若指針修改后超出循環(huán)緩存區(qū),則地址指針“繞回”起始地址,循環(huán)尋址:地址指針的修改限制在一個存儲區(qū)域,超出范圍后指針內(nèi)的地址繞回起始地址,BIT/TI,第七講 連接器,27,循環(huán)尋址的使用-AMR低16位設(shè)置尋址模式,模式說明00線性(默認)01循環(huán)(BK0說明循環(huán)緩存區(qū)長度)10循環(huán)(BK0說明循環(huán)緩存區(qū)長度)11保留,BIT/TI,第七講 連接器,28,循環(huán)尋址的使用-AMR高16位設(shè)置循環(huán)
11、緩存區(qū)長度,循環(huán)緩存區(qū)長度(字節(jié))=2N+1N循環(huán)緩存區(qū)長度00000200111256(27+1=256)111114G(231+1=4G),BIT/TI,第七講 連接器,29,設(shè)置寄存器AMR-例子,MVC-在控制寄存器與通用寄存器之間傳遞數(shù)據(jù),使用功能單元.S2,BIT/TI,第七講 連接器,30,循環(huán)尋址-練習(xí),.sect“myData”.align16.int1111111
12、1,22....sect“myCode”MVK .S10001h, A2MVKLH .S10003h, A2MVC .S2x A2, AMRMVK .S1 100h, A4LDW .D1 *A4++[2], A1LDW .D1 *A4++[3], A1,,,,設(shè)置AMR,,BIT/TI,第七講 連接器,31,操作數(shù):有限字長效應(yīng)問題,采用Q15表示操作數(shù),乘法不會有溢出問題
13、加法有溢出問題,BIT/TI,第七講 連接器,32,加性溢出的解決方法,1. 選擇飽和運算指令(Saturation),并檢查運算結(jié)果是否發(fā)生運算結(jié)果飽和。2. 使用警戒位(guard bits)。3. 使用非增益系統(tǒng)(系統(tǒng)增益<1),BIT/TI,第七講 連接器,33,1.飽和運算,,1) 使用飽和運算指令編程2) 檢查結(jié)果是否發(fā)生飽和,BIT/TI,第七講 連接器,34,檢查運算結(jié)果是否發(fā)生飽和-SAT位的提取和清除
14、,BIT/TI,第七講 連接器,35,飽和運算小結(jié),飽和運算造成非線性結(jié)果使用指令SADD, SSUB, SAT, SMPY時,如果結(jié)果發(fā)生飽和,則控制狀態(tài)寄存器CSR的SAT位被置位飽和位SAT置位后,在下次使用前要清零,BIT/TI,第七講 連接器,36,2.使用警戒位,BIT/TI,第七講 連接器,37,用long 40實現(xiàn)警戒位,BIT/TI,第七講 連接器,38,如何使用40bit結(jié)果?,結(jié)果存入存儲器(40位結(jié)果無法直接
15、作乘法器輸入)指令SAT把40bits結(jié)果轉(zhuǎn)換為32bits(轉(zhuǎn)換結(jié)果可能會發(fā)生飽和),BIT/TI,第七講 連接器,39,3.使用非增益系統(tǒng),如果系統(tǒng)有界,并且是線性的,則最后結(jié)果不會發(fā)生溢出。y=H.x假設(shè):|x|<1, |H|<1則:|y|<1,BIT/TI,第七講 連接器,40,非增益系統(tǒng)例子,BIT/TI,第七講 連接器,41,三、程序控制-子程序調(diào)用與返回,調(diào)用-CALL,返回-RE
16、T,,,BIT/TI,第七講 連接器,42,跳轉(zhuǎn)指令,共有兩個跳轉(zhuǎn)指令B 標號-相對跳轉(zhuǎn)-標號與當(dāng)前地址的偏移限制在+/-220B 寄存器-絕對跳轉(zhuǎn)-只能在.S2上執(zhí)行跳轉(zhuǎn)指令及其延遲間隙不可中斷5個延遲間隙,BIT/TI,第七講 連接器,43,實驗,實驗?zāi)康模壕C合掌握4,5,6,7章知識,了解完整的匯編語言編程實驗內(nèi)容30點點積的完整匯編語言編程:包括數(shù)據(jù)結(jié)構(gòu)和算法,以及程序復(fù)位、數(shù)據(jù)初始化,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論