freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

armthumb交互工作-資料下載頁(yè)

2024-09-30 09:11本頁(yè)面

【導(dǎo)讀】Thumb的代碼密度和在窄存儲(chǔ)器上性能,使得它用在很多有大量C代碼的系統(tǒng)。在一個(gè)應(yīng)用中,速度關(guān)鍵的部分用ARM代碼實(shí)現(xiàn)是不錯(cuò)的。一些函數(shù)只能用ARM指令實(shí)現(xiàn),.異常處理時(shí)自動(dòng)進(jìn)入ARM狀態(tài),但系統(tǒng)要求主程序用Thumb代碼實(shí)現(xiàn)。獨(dú)立的Thumb程序也需要一個(gè)ARM的匯編程序頭來切換,并調(diào)用Thumb程序。交互的實(shí)現(xiàn)采用跳轉(zhuǎn)交換指令。這將通過拷貝Rn到PC來實(shí)現(xiàn)在4GB空間內(nèi)的一個(gè)絕對(duì)跳轉(zhuǎn).其中Rn的Bit-0表明切換到何種狀態(tài).返回實(shí)現(xiàn)通常只需從LR恢復(fù)PC:MOVpc,lr. 在使用C/C++寫程序時(shí),可以自由的編譯為ARM. BL不能完成狀態(tài)切換。需要其它方法來解決這個(gè)問題。從子程序返回,要使用BXLR以便返回先前的狀態(tài)。BL在Thumb狀態(tài)下可能設(shè)置了LR的lsb. 任何包含使用交互調(diào)用函數(shù)的C模塊的編譯必須使用-apcs/interwork. 連接器生成一小段代碼來改變狀態(tài)。使用armlink-infoveneers可以看到加入的“veneers”的大小,在入口處保護(hù)所有函數(shù)使用的寄存器。導(dǎo)出自己的符號(hào),.EXPORTThumbSub

  

【正文】 tate Rm 目的地址 31 0 1 31 0 1 0/1 0 BLX Rm ? 和標(biāo)準(zhǔn)的 BX指令相同,除了保存返回地址到 Lr中 ? ARM 版本下可條件執(zhí)行 ? Thumb 版本下 ? 單一的 16bit 指令 ? LR 的 LSB 將被設(shè)置 ? 使用 BX LR 從子程序返回 PC 23 TM 23 64v04 ARM / Thumb Interworking with ADS ? LDM {cond} addressing mode Rn, {…,PC} ? 增加了對(duì)交互的支持表 v4T behaviour with extra support for interworking ? 如果 PC 是一個(gè)加載寄存器那么 ? 加載值的 bit[0]將被寫入 CPSR 的 Tbit (這將可能導(dǎo)致一狀態(tài)切換 ) ? 用作恢復(fù)寄存器同時(shí)從子程序返回 ? 用來替換 LDMFD sp!,{...,LR} + BX LR ? Thumb POP {…,PC} 有同樣的功能 ? LDR PC, [Rn,...] 同樣依據(jù)加載值的 0bit來設(shè)置 CPSR 的 Tbit ? 可以用作跳轉(zhuǎn)表 ? 沒有相當(dāng)?shù)? Thumb 指令 LDMFD sp!,{…,PC} 0...0 0010 1110 110 1 PC = CPSR = cond T mode 送數(shù)到 PC 24 TM 24 64v04 ARM / Thumb Interworking with ADS ARM 5T 架構(gòu)對(duì)交互編譯的影響 ? 葉函數(shù)簡(jiǎn)單使用 BX 來返回 . ? 非葉函數(shù)被編譯成交互格式 : ? 在入口處 ( 調(diào)用 BL 之前 )壓棧保護(hù)返回地址 ? 在入口處保護(hù)所有函數(shù)使用的寄存器 ? 彈出 PC來實(shí)現(xiàn)返回(可能導(dǎo)致狀態(tài)切換) . C source code armcc cpu 5T apcs /inter tcc cpu 5T apcs /inter void func(void) func func { STMFD sp!,{r4r11,lr} PUSH {r4r7,lr} : : : sub()。 BL sub BL sub : : : } LDMFD sp!,{r4r11,pc} POP {r4r7,pc} ? 連接程序?qū)⒏鶕?jù)需要修正 BX為 BLX 25 TM 25 64v04 ARM / Thumb Interworking with ADS 更詳細(xì)的資料 ... ADS Developer Guide, Chapter 4, Interworking ARM and Thumb 26 TM 26 64v04 ARM / Thumb Interworking with ADS Quiz 1) What determines whether a state change occurs when a BX instruction is executed? 2) What are the difference between a BX and a BL instruction? 3) What must you do to interwork C functions? 4) What must you do to interwork assembler functions? 5) What advantage do the Architecture 5T BLX instructions give ?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1