版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、BIT/TI,第七講 連接器,1,第七講 數(shù)據(jù)訪問與程序控制,BIT/TI,第七講 連接器,2,學習內(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ù)定界練習,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,交叉通路-練習,下面的指令中使用了哪些交叉通路?,請判斷上面的指令是否能通過編譯?,,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)尋址-練習,.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)-標號與當前地址的偏移限制在+/-220B 寄存器-絕對跳轉(zhuǎn)-只能在.S2上執(zhí)行跳轉(zhuǎn)指令及其延遲間隙不可中斷5個延遲間隙,BIT/TI,第七講 連接器,43,實驗,實驗目的:綜合掌握4,5,6,7章知識,了解完整的匯編語言編程實驗內(nèi)容30點點積的完整匯編語言編程:包括數(shù)據(jù)結(jié)構(gòu)和算法,以及程序復位、數(shù)據(jù)初始化,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論