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

正文內(nèi)容

arm處理器編程模型與指令系統(tǒng)-免費(fèi)閱讀

2025-03-25 13:04 上一頁面

下一頁面
  

【正文】 ARM異常按引起異常事件的不同可分為指令執(zhí)行引起的直接異常、指令執(zhí)行引起的間接異常、外部產(chǎn)生的與指令流無關(guān)的異常三類。 ARM狀態(tài)(處理器執(zhí)行 32位的、字對(duì)齊的 ARM指令)和Thumb狀態(tài)(處理器執(zhí)行 16位的、半字對(duì)齊的Thumb指令)。 ARM指令集 ? ARM協(xié)處理器指令包括以下 5條 : ?CDP:協(xié)處理器數(shù)操作指令 ?LDC:協(xié)處理器數(shù)據(jù)加載指令 ?STC:協(xié)處理器數(shù)據(jù)存儲(chǔ)指令 ?MCR: ARM處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令 ?MRC:協(xié)處理器寄存器到 ARM處理器寄存器的數(shù)據(jù)傳送指令 ARM指令集 異常產(chǎn)生指令 ARM微處理器所支持的異常指令有如下兩條: ?SWI:軟件中斷指令; ?BKPT:斷點(diǎn)中斷指令 主要內(nèi)容 ? ARM微處理器的工作狀態(tài) ? ARM微處理器的運(yùn)行模式 ? ARM體系結(jié)構(gòu)的存儲(chǔ)器格式 ? 寄存器組織 ? ARM的異常 ? ARM微處理器的指令系統(tǒng)基礎(chǔ) ? ARM指令的尋址方式 ? ARM指令集 ? Thumb指令及應(yīng)用 Thumb指令及應(yīng)用 Thumb指令集是 ARM指令集的一個(gè)子集,允許指令編碼為 16位的長度。 常用的批量數(shù)據(jù) Load/Store指令如下: ?LDM:批量數(shù)據(jù)加載指令; ?STM:批量數(shù)據(jù)存儲(chǔ)指令 ARM指令集 跳轉(zhuǎn)指令 跳轉(zhuǎn)指令用于實(shí)現(xiàn)程序流程的跳轉(zhuǎn),在 ARM程序中有兩種方法可以實(shí)現(xiàn)程序流程的跳轉(zhuǎn): ?使用專門的跳轉(zhuǎn)指令; ?直接向程序計(jì)數(shù)器 PC寫入跳轉(zhuǎn)地址值。 ARM指令集 ?數(shù)據(jù)傳送指令 用于在寄存器和存儲(chǔ)器之間進(jìn)行數(shù)據(jù)的雙向傳輸。 例如以下指令: ADD R0, R1, R2 ; R0←R1 + R2 ARM指令的尋址方式 寄存器間接尋址 ?寄存器間接尋址 就是以寄存器中的值作為操作數(shù)的地址(這個(gè)寄存器相當(dāng)于指針的作用,在基址加變址的尋址方式中,它作為基址寄存器來存放基址地址),而操作數(shù)本身存放在存儲(chǔ)器中。 快速中斷請(qǐng)求 ( FIQ) 當(dāng)處理器的快速中斷請(qǐng)求引腳有效,且 CPSR中的 F位為 0時(shí),產(chǎn)生 FIQ異常。 未定義指令 ( UDEF) 當(dāng) ARM處理器或協(xié)處理器遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常。在 ARM指令集當(dāng)中,沒有以特殊方式使用 R13的指令或其它功能,只是習(xí)慣上都這樣使用。 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無 SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 一般的通用寄存器 R13_und R13_abt 11_fi 其中 R0~ R7為未分組的寄存器 ,也就是說對(duì)于任何處理器模式,這些寄存器都對(duì)應(yīng)于相同的 32位物理寄存器。 ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。嵌入式系統(tǒng)設(shè)計(jì) 第四章 ARM處理器 編程模型與指令系統(tǒng) 主要內(nèi)容 ? ARM微處理器的工作狀態(tài) ? ARM微處理器的運(yùn)行模式 ? ARM體系結(jié)構(gòu)的存儲(chǔ)器格式 ? 寄存器組織 ? ARM的異常 ? ARM微處理器的指令系統(tǒng)基礎(chǔ) ? ARM指令的尋址方式 ? ARM指令集 ? Thumb指令及應(yīng)用 ARM微處理器的工作狀態(tài) ? 從編程的角度看, ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換: ?ARM狀態(tài) : 此時(shí)處理器執(zhí)行 32位的字對(duì)齊的 ARM指令 ?Thumb狀態(tài) : 此時(shí)處理器執(zhí)行 16位的、半字對(duì)齊的 Thumb指令 ARM微處理器的工作狀態(tài) ? ARM指令集和 Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,但ARM微處理器在開始執(zhí)行代碼時(shí),應(yīng)該處于 ARM狀態(tài) ?進(jìn)入 ARM狀態(tài) :當(dāng)操作數(shù)寄存器的狀態(tài)位(位 0)為 0時(shí),執(zhí)行 BX指令時(shí)可以使微處理器從 Thumb狀態(tài)切換到 ARM狀態(tài)。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無 SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 一般的通用寄存器 14_fi 14_ir R14_und R14_abt 13_fi 13_ir R13_und R13_abt 12_fi 11_fi 寄存器 R8~ R14為 分組寄存器 。但是在 Thumb指令集中存在使用R13的指令。可使用該異常機(jī)制進(jìn)行軟件仿真。 ARM體系結(jié)構(gòu)所支持的異常 異常向量( Exception Vectors) 地 址 異 常 進(jìn)入模式 0x0000,0000 復(fù)位 管理模式 0x0000,0004 未定義指令 未定義模式 0x0000,0008 軟件中斷 管理模式 0x0000,000C 中止(預(yù)取指令) 中止模式 0x0000,0010 中止(數(shù)據(jù)) 中止模式 0x0000,0014 保留 保留 0x0000,0018 IRQ IRQ 0x0000,001C FIQ FIQ ARM的異常 對(duì)異常的響應(yīng) ARM微處理器對(duì)異常的響應(yīng)過程如下: 將下一條指令的地址存入相應(yīng)的連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行; 將 CPSR復(fù)制到相應(yīng)的 SPSR中; 設(shè)置當(dāng)前狀態(tài)寄存器 CPSR中的相應(yīng)位; 給程序計(jì)數(shù)器( PC)強(qiáng)制賦值,使程序從相應(yīng)的異常向量地址開始執(zhí)行中斷處理程序 ; ARM的異常 從異常返回 ARM微處理器會(huì)執(zhí)行以下操作從異常返回 : 所有修改過的用戶寄存器必須從處理程序的保護(hù)堆棧中恢復(fù)(出棧); 將連接寄存器 LR的值減去相應(yīng)的偏移量送到 PC中; 將 SPSR_mode寄存器內(nèi)容復(fù)制回 CPSR中,使得 CPSR從相應(yīng)的 SPSR中恢復(fù),即恢復(fù)被中斷的程序工作狀態(tài); 若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。 例如以下指令: ADD R0, R1, [R2] ; R0←R1 + [R2] LDR R0, [R1] ; R0←[R1] STR R0, [R1] ; [R1]←R0 ARM指令的尋址方式 基址變址尋址 ?基址變址尋址就是將寄存器(該寄存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個(gè)操作數(shù)的有效地址,用于訪問基址附近的存儲(chǔ)器單元。 ?算術(shù)邏輯運(yùn)算指令 完成常用的算術(shù)與邏輯的運(yùn)算,該類指令不但將運(yùn)算結(jié)果保存在目的寄存器中,同時(shí)更新 CPSR中的相應(yīng)條件標(biāo)志位。 ARM指令集 ? ARM指令集中的跳轉(zhuǎn)指令可以完成從當(dāng)前指令向前或向后的 32MB的地址空間的跳轉(zhuǎn),包括以下 4條指令 : ?B:跳轉(zhuǎn)指令; ?BL:帶返回的跳轉(zhuǎn)指令; ?BLX:帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 。與等價(jià)的 32位代碼比較, Thumb指令集在保留 32代碼優(yōu)勢(shì)的同時(shí),大大節(jié)省了系統(tǒng)的存儲(chǔ)空間。 ? ARM微處理器支持 7種運(yùn)行模式,分別為:用戶模式、快速中斷模式、外部中斷模式、管理模式、數(shù)據(jù)訪問終止模式、系統(tǒng)模式、未定義指令中止模式。 ? ARM微處理器的指令集可以分為跳轉(zhuǎn)指令、數(shù)據(jù)處理指令、程序狀態(tài)寄存器處理指令、Load/Store指令、協(xié)處理器指令和異常產(chǎn)生指令六大類。 本章小結(jié) ? 在 ARM體系結(jié)構(gòu)中,異常中斷用來處理軟件中斷、未定義指令陷阱、系統(tǒng)復(fù)位和外部事件。 本章小結(jié) ? 從編程的角度看, ARM微處理器的工作狀態(tài)一般有兩種,并可在這兩種狀態(tài)之間切換。 ARM指令集 ? 協(xié)處理器指令用途: ARM的協(xié)處理器指令主要用于 ARM處理器初始化、 ARM協(xié)處理器的數(shù)據(jù)處理操作,以及在 ARM處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在 ARM協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。 ARM指令集 ? 常用的 Load/Store指令如下: LDR :字?jǐn)?shù)據(jù)加載指令; LDRB:字節(jié)數(shù)據(jù)加載指令; LDRH:半字?jǐn)?shù)據(jù)加載指令; STR:字?jǐn)?shù)據(jù)存儲(chǔ)指令; STRB:字節(jié)數(shù)據(jù)存儲(chǔ)指令; STRH:半字?jǐn)?shù)據(jù)存儲(chǔ)指令 ARM指令集 批量數(shù)據(jù)加載 /存儲(chǔ)指令
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1