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

正文內(nèi)容

計算機軟件及應(yīng)用]08-常用arm指令(參考版)

2025-01-24 16:02本頁面
  

【正文】 ? 所有的 Thumb指令都有對應(yīng)的 ARM指令,而且 Thumb的編程模型也對應(yīng)于 ARM的編程模型,在應(yīng)用程序的編寫過程中,只要遵循一定調(diào)用的規(guī)則, Thumb子程序和 ARM子程序就可以互相調(diào)用。 Thumb指令集是 ARM指令集的一個子集,允許指令編碼為 16位的長度。其中協(xié)處理器操作碼 1和協(xié)處理器操作碼 2為協(xié)處理器將要執(zhí)行的操作,目的寄存器為 ARM處理器的寄存器,源寄存器 1和源寄存器 2均為協(xié)處理器的寄存器。 65 協(xié)處理器指令 MRC指令 ? MRC指令的格式為: MRC{條件 } 協(xié)處理器編碼,協(xié)處理器操作碼 1,目的寄存器,源寄存器 1,源寄存器 2,協(xié)處理器操作碼 2。其中協(xié)處理器操作碼 1和協(xié)處理器操作碼 2為協(xié)處理器將要執(zhí)行的操作,源寄存器為ARM處理器的寄存器,目的寄存器 1和目的寄存器 2均為協(xié)處理器的寄存器。 64 協(xié)處理器指令 MCR指令 ? MCR指令的格式為: MCR{條件 } 協(xié)處理器編碼,協(xié)處理器操作碼 1,源寄存器,目的寄存器 1,目的寄存器2,協(xié)處理器操作碼 2。其中, {L}選項表示指令為長讀取操作,如用于雙精度數(shù)據(jù)的傳輸。 ? LDC P3, C4, [R0] ; 將 ARM處理器的寄存器 R0所指向的存儲器中的字?jǐn)?shù)據(jù)傳送到協(xié)處理器 P3的寄存器 C4中。 ? CDP P3, 2, C12, C10, C3, 4 ; 該指令完成協(xié)處理器P3的初始化 62 協(xié)處理器指令 LDC指令 ? LDC指令的格式為: LDC{條件 }{L} 協(xié)處理器編碼 ,目的寄存器, [源寄存器 ] ? LDC指令用于將源寄存器所指向的存儲器中的字?jǐn)?shù)據(jù)傳送到目的寄存器中,若協(xié)處理器不能成功完成傳送操作,則產(chǎn)生未定義指令異常。 ? CDP指令用于 ARM處理器通知 ARM協(xié)處理器執(zhí)行特定的操作 ,若協(xié)處理器不能成功完成特定的操作,則產(chǎn)生未定義指令異常。該半字?jǐn)?shù)據(jù)為源寄存器中的低 16位 STRH R0, [R1] ; 將寄存器 R0中的半字?jǐn)?shù)據(jù)寫入以 R1為地址的存儲器中 STRH R0, [R1,# 8] ; 將寄存器 R0中的半字?jǐn)?shù)據(jù)寫入以 R1+ 8為地址的存儲器中 52 批量數(shù)據(jù)加載 /存儲指令 ?LDM(或 STM)指令 ?LDM(或 STM)指令的格式為: LDM(或 STM) {條件 }{類型 } 基址寄存器 {! },寄存器列表 {∧} ?ARM微處理器所支持批量數(shù)據(jù)加載 /存儲指令可以 一次在一片連續(xù)的存儲器單元和多個寄存器之間傳送數(shù)據(jù) ?批量加載指令( LDR)用于將一片連續(xù)的存儲器中的數(shù)據(jù)傳送到多個寄存器 ?批量數(shù)據(jù)存儲指令 (STR)則完成相反的操作 ?該指令的常見用途是將多個寄存器的內(nèi)容入?;虺鰲? 53 批量數(shù)據(jù)加載 /存儲指令 ? {!}為可選后綴,若選用該后綴,則當(dāng)數(shù)據(jù)傳送完畢之后,將最后的地址寫入基址寄存器,否則基址寄存器的內(nèi)容不改變 ?STMFD R13!, {R0, R4R12, LR}; 將寄存器列表中的寄存器( R0, R4到 R12, LR)存入堆棧 ,最后 r13存放的是最新的值 ?LDMFD R13!, {R0, R4R12, PC}; 將堆棧內(nèi)容恢復(fù)到寄存器( R0, R4到 R12, LR) 54 批量數(shù)據(jù)加載 /存儲指令 其中, {類型 }為以下幾種情況: ?IA 每次傳送后地址加 1; ?IB 每次傳送前地址加 1; ?DA 每次傳送后地址減 1; ?DB 每次傳送前地址減 1; ?FD 滿遞減堆棧; ?ED 空遞減堆棧; ?FA 滿遞增堆棧; ?EA 空遞增堆棧; 55 課程內(nèi)容 ?跳轉(zhuǎn)指令 ?數(shù)據(jù)處理指令 ?乘法指令 ?狀態(tài)寄存器訪問指令 ?Load/Store內(nèi)存訪問指令 ?移位指令 ?協(xié)處理器指令 56 移位指令 (操作 ) ? ARM微處理器內(nèi)嵌的桶型移位器( Barrel Shifter),支持?jǐn)?shù)據(jù)的各種移位操作 ? 移位操作在 ARM指令集中不作為單獨的指令使用,它只能作為指令格式中的一個字段 ?例如,數(shù)據(jù)處理指令的第二個操作數(shù)為寄存器時,就可以加入移位操作選項對它進行各種移位操作 ? 移位操作包括如下 6種類型, ASL和 LSL是等價的,可以自由互換: — LSL 邏輯左移 — ASL 算術(shù)左移 — LSR 邏輯右移 — ASR 算術(shù)右移 — ROR 循環(huán)右移 — RRX 帶擴展的循環(huán)右移 57 移位指令 (操作 ) LSL(或 ASL)操作 MOV R0, R1, LSL2 ;將 R1中的內(nèi)容左移兩位后傳送到 R0中 MOV R0, R1, LSR2 。 ?當(dāng)程序計數(shù)器 PC作為目的寄存器時,指令從存儲器中讀取的字?jǐn)?shù)據(jù)被當(dāng)作目的地址,從而可以實現(xiàn)程序流程的跳轉(zhuǎn) 45 加載 /存儲指令 LDR R0, [R1] ;將存儲器地址為 R1的字?jǐn)?shù)據(jù)讀入寄存器 R0 LDR R0, [R1, R2] ;將存儲器地址為 R1+R2的字?jǐn)?shù)據(jù)讀入寄存器 R0 LDR R0, [R1, R2] ! ;將存儲器地址為 R1+R2的字?jǐn)?shù)據(jù)讀入寄存器 R0,并將新地址 R1+ R2寫入 R1 LDR R0, [R1,# 8] ! ;將存儲器地址為 R1+8的字?jǐn)?shù)據(jù)讀入寄存器 R0,并將新地址 R1+ 8寫入 R1 注意:使用后綴 “ ! ” 表示,將結(jié)果寫回到基址寄存器,且此時基址寄存器的值不允許為 R15 46 加載 /存儲指令 LDR R0, [R1, R2, LSL# 2]! ;將存儲器地址為 R1+ R2 4的字?jǐn)?shù)據(jù)讀入寄存器 R0,并將新地址 R1+ R2 4寫入 R1 LDR R0, [R1], R2 ;將存儲器地址為 R1的字?jǐn)?shù)據(jù)讀入寄存器 R0,并將新地址 R1+ R2寫入 R1 LDR R0, [R1], R2, LSL# 2 ;將存儲器地址為 R1的字?jǐn)?shù)據(jù)讀入寄存器 R0,并將新地址 R1+ R2 4寫入 R1 47 加載 /存儲指令 LDRB指令 ?LDRB指令的格式為: LDR{條件 }B 目的寄存器,存儲器地址 LDRB R0, [R1] ; 將存儲器地址為 R1的字節(jié)數(shù)據(jù)讀入 寄存器 R0,并將 R0的高 24位清零 LDRB R0, [R1,# 8] ; 將存儲器地址為 R1+ 8的字節(jié)數(shù)據(jù)讀入寄存器 R0,并將 R0的高 24位清零 48
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1