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

正文內(nèi)容

armthumb微處理器結(jié)構(gòu)及指令系統(tǒng)(參考版)

2025-05-15 22:16本頁面
  

【正文】 SWI處理程序通過執(zhí)行下面的指令返回: MOVS PC,R14_svc 這個(gè)動(dòng)作恢復(fù)了 PC和 CPSR并返回到 SWI之后的指令 。這意味著 ARM7TDMI內(nèi)核總是會(huì)保護(hù)被中止的 LDM指令中的 R15(總是最后一個(gè)被轉(zhuǎn)移的寄存器)。 當(dāng)回寫被設(shè)置時(shí),基址寄存器被更新。 在處理中止的原因之后,不管處于哪種處理器操作狀態(tài),處理程序都會(huì)執(zhí)行下面的指令恢復(fù) PC和CPSR并重試被中止的指令: SUBS PC,R14_abt,4 ? 中止 —— 預(yù)取指中止 異常 當(dāng)發(fā)生數(shù)據(jù)中止后,根據(jù)產(chǎn)生數(shù)據(jù)中止的指令類型作出不同的處理: ? 中止 —— 數(shù)據(jù)中止 ?數(shù)據(jù)轉(zhuǎn)移指令( LDR、 STR)回寫到被修改的基址寄存器。 不管異常入口是來自 ARM狀態(tài)還是 Thumb狀態(tài),F(xiàn)IQ處理程序都會(huì)通過執(zhí)行下面的指令從中斷返回: SUBS PC,R14_fiq,4 ? 中斷請(qǐng)求 異常 中止發(fā)生在對(duì)存儲(chǔ)器的訪問不能完成時(shí),中止包含兩種類型: ?預(yù)取中止 發(fā)生在指令預(yù)取過程中 ?數(shù)據(jù)中止 發(fā)生在對(duì)數(shù)據(jù)訪問時(shí) ? 中止 異常 當(dāng)發(fā)生預(yù)取中止時(shí), ARM7TDMI內(nèi)核將預(yù)取的指令標(biāo)記為無效,但在指令到達(dá)流水線的執(zhí)行階段時(shí)才進(jìn)入異常。對(duì)于 FIQ序列它是被屏蔽的。 ? 快速中斷請(qǐng)求 異常 中斷請(qǐng)求( IRQ)異常是一個(gè)由 nIRQ輸入端的低電平所產(chǎn)生的正常中斷(在具體的芯片中, nIRQ由片內(nèi)外設(shè)拉低, nIRQ是內(nèi)核的一個(gè)信號(hào),對(duì)用戶不可見)。 IRQ01BackAddr JumpAddr return SYS 1 ? 0 . . . ? ? ? ? BackAd r4 “?”表示對(duì)該位不關(guān)心 快速中斷請(qǐng)求 (FIQ)適用于對(duì)一個(gè)突發(fā)事件的快速響應(yīng),這得益于在 ARM狀態(tài)中,快中斷模式有 8個(gè)專用的寄存器可用來滿足寄存器保護(hù)的需要(這可以加速上下文切換的速度)。 注 :恢復(fù) CPSR的動(dòng)作會(huì)將 T、 F和 I位自動(dòng)恢復(fù)為異常發(fā)生前的值。當(dāng)處理器處于 Thumb狀態(tài)時(shí)發(fā)生了異常,在異常向量地址裝入PC時(shí),會(huì)自動(dòng)切換到 ARM狀態(tài)。 異常 ARM7TDMI內(nèi)核在中斷異常時(shí)置位中斷禁止標(biāo)志,這樣可以防止不受控制的異常嵌套。 異常 ? 進(jìn)入異常 在異常發(fā)生后 , ARM7TDMI內(nèi)核會(huì)作以下工作: LR中保存下一條指令的地址 , 當(dāng)異常入口來自: ?ARM狀態(tài) , 那么 ARM7TDMI將當(dāng)前指令地址加 4或加 8復(fù)制 ( 取決于異常的類型 ) 到 LR中; ?為 Thumb狀態(tài) , 那么 ARM7TDMI將當(dāng)前指令地址加 4或加 8 ( 取決于異常的類型 ) 復(fù)制到 LR中;異常處理器程序不必確定狀態(tài) 。 這里使用的堆棧指針SP( R13) 是屬于異常模式的寄存器 , 每個(gè)異常模式有自己的堆棧指針 。中斷返回 注意 :中斷返回指令的寄存器列表 ( 其中必須包括PC) 后的 “ ^”符號(hào)表示這是一條特殊形式的指令 。計(jì)算返回地址 STMFD SP!,{R0R3,LR} 。中斷返回 中斷處理代碼的開始部分和退出部分 異常 如果異常處理程序已經(jīng)把返回地址拷貝到堆棧 ,那么可以使用一條多寄存器傳送指令來恢復(fù)用戶寄存器并實(shí)現(xiàn)返回 。計(jì)算返回地址 STMFD SP!,{R0R3,LR} 。 異常 異常處理器模式 異常類型 模式 正常地址 復(fù)位 管理 0x00000000 未定義指令 未定義 0x00000004 軟件中斷 ( SWI) 管理 0x00000008 預(yù)取中止 (取指令存儲(chǔ)器中止) 中止 0x0000000C 數(shù)據(jù)中止 (數(shù)據(jù)訪問存儲(chǔ)器中止) 中止 0x00000010 IRQ(中斷) IRQ 0x00000018 FIQ(快速中斷) FIQ 0x0000001C ? 異常的入口和出口處理 如果異常處理程序已經(jīng)把返回地址拷貝到堆棧 ,那么可以使用一條多寄存器傳送指令來恢復(fù)用戶寄存器并實(shí)現(xiàn)返回 。 在處理異常之前 , ARM7TDMI內(nèi)核保存當(dāng)前的處理器狀態(tài) , 這樣當(dāng)處理程序結(jié)束時(shí)可以恢復(fù)執(zhí)行原來的程序 。 第二章 目錄 ※ 1 ARM微處理器概述 ● ARM處理器系列 ● RISC體系結(jié)構(gòu) ● ARM和 Thumb狀態(tài) ● 寄存器 ● ARM指令集概述 ● Thumb指令集概述 ※ 2 ARM微處理器體系結(jié)構(gòu) ● 數(shù)據(jù)類型 ● ARM微處理器的工作狀態(tài) ● ARM體系結(jié)構(gòu)的存儲(chǔ)器格式 ● 處理器模式 ● 寄存器組織 ● 異常 ※ 3 ARM/Thumb指令系統(tǒng) ● 處理器尋址方式 ● 指令集介紹 ● 指令集介紹 ? 簡介 只要正常的程序流被暫時(shí)中止 , 處理器就進(jìn)入異常模式 。另外,請(qǐng)確保您程序的運(yùn)行不受保留位的值影響,因?yàn)閷淼奶幚砥骺赡軙?huì)將這些位設(shè)置為 1或者 0。 保留位被保留將來使用。 最低 8位為控制位,當(dāng)發(fā)生異常時(shí),這些位被硬件改變。 當(dāng)進(jìn)行減法運(yùn)算 , 并且最高位產(chǎn)生借位時(shí) C=0, 否則 C=1。 運(yùn)算結(jié)果的最高位反映在該標(biāo)志位 。 程序狀態(tài)寄存器 N Z C V — — I M0 M1 M2 M3 M4 T F — . . . 31 30 29 28 27 26 8 7 6 5 4 3 2 1 0 條件代碼標(biāo)志 保留 控制位 溢出標(biāo)志 進(jìn)位或借位擴(kuò)展 零 負(fù)或小于 IRQ禁止 FIQ禁止 狀態(tài)位 模式位 CPSR寄存器的格式 大多數(shù) “ 數(shù)值處理指令 ” 可以選擇是否影響條件代碼標(biāo)志位(指令帶 S后綴);但有些指令執(zhí)行總是影響條件代碼標(biāo)志。 寄存器組織 ?程序狀態(tài)寄存器 — CPSR(1)+SPSR(5) 寄存器組織 CPSR反映了當(dāng)前處理器的狀態(tài): ?4個(gè)條件代碼標(biāo)志; ?2個(gè)中斷控制位; ? 5個(gè)對(duì)當(dāng)前處理器模式進(jìn)行編碼的位; ?1個(gè)指示當(dāng)前執(zhí)行指令的工作狀態(tài)位; ?保留位 。匯編語言程序員對(duì)它們的訪問受到限制,但可以將它們用于快速暫存。 14? ARM狀態(tài)和 Thumb狀態(tài)之間寄存器的關(guān)系 ?Thumb狀態(tài) R0~ R7與 ARM狀態(tài) R0~ R7相同; ?Thumb狀態(tài) CPSR和 SPSR與 ARM狀態(tài) CPSR和SPSR相同; ?Thumb狀態(tài) SP映射到 ARM狀態(tài) R13; ?Thumb狀態(tài) LR映射到 ARM狀態(tài) R14; ?Thumb狀態(tài) PC映射到 ARM狀態(tài) PC( R15) 。 1313Thumb狀態(tài)下的鏈接寄存器 R14( LR) CPSR CPSR 狀態(tài)寄 存器 R15 PC R14_fiq R14_irq R14_und R14_abt R14_svc R14 LR R13_fiq R13_irq R13_und R13_abt R13_svc R13 SP R7 R7(v4,wr) R6 R6(v3) R5 R5(v2) R4 R4(v1) R3 R3(a4) R2 R2(a3) R1 R1(a2) R0 R0(a1) 通用寄存器和程序計(jì)數(shù)器 快中斷 中斷 未定義 中止 管理 系統(tǒng) 用戶 各模式下實(shí)際訪問的寄存器 寄存器在匯編中的名稱 寄存器類別 鏈接寄存器 LR對(duì)應(yīng) ARM狀態(tài)寄存器R14,在結(jié)構(gòu)上有兩個(gè)特殊功能,詳見“ ARM狀態(tài)下的鏈接寄存器 LR”。每個(gè)異常模式都有其自身的 SP分組版本, SP通常指向各異常模式所專用的堆棧。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特殊的用途,并且可用于任何使用通用寄存器的指令。 Thumb狀態(tài)下的通用寄存器 CPSR CPSR 狀態(tài)寄 存器 R15 PC R14_fiq R14_irq R14_und R14_abt R14_svc R14 LR R13_fiq R13_irq R13_und R13_abt R13_svc R13 SP R7 R7(v4,wr) R6 R6(v3) R5 R5(v2) R4 R4(v1) R3 R3(a4) R2 R2(a3) R1 R1(a2) R0 R0(a1) 通用寄存器和程序計(jì)數(shù)器 快中斷 中斷 未定義 中止 管理 系統(tǒng) 用戶 各模式下實(shí)際訪問的寄存器 寄存器在匯編中的名稱 寄存器類別 R6R5R1 在匯編語言中寄存器 R0~ R7為保存數(shù)據(jù)或地址值的通用寄存器。 寄存器組織 Thumb狀態(tài)各模式下的寄存器 CPSR CPSR 狀態(tài)寄 存器 R15 PC R14_fiq R14_irq R14_und R14_abt R14_svc R14 LR R13_fiq R13_irq R13_und R13_abt R13_svc R13 SP R7 R7(v4,wr) R6 R6(v3) R5 R5(v2) R4 R4(v1) R3 R3(a4) R2 R2(a3) R1 R1(a2) R0 R0(a1) 通用寄存器和程序計(jì)數(shù)器 快中斷 中斷 未定義 中止 管理 系統(tǒng) 用戶 各模式下實(shí)際訪問的寄存器 寄存器在匯編中的名稱 寄存器類別 注意:括號(hào)內(nèi)為 ATPCS中寄存器的命名,可以使用 RN匯編偽指令將寄存器定義多個(gè)名字。每種異常都有自己的 SPSR,在因?yàn)楫惓J录M(jìn)入異常時(shí)它保存 CPSR的當(dāng)前值,異常退出時(shí)可通過它恢復(fù) CPSR。具體的規(guī)則取決于內(nèi)核結(jié)構(gòu)的版本: ?在 ARM結(jié)構(gòu) V3版及以下版本中,寫入 R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實(shí)際目標(biāo)地址(寫入 R15的值)和 0xFFFFFFFC相與得到; ?在 ARM結(jié)構(gòu) V4版及以上版本中,寫入 R15的值的最低兩位為 0,如果不是,結(jié)果將不可預(yù)測。計(jì)算偏移量 寄存器組織 ? 寫 R15的限制 正常操作時(shí),寫入 R15 的值被當(dāng)作一個(gè)指令地址,程序從這個(gè)地址處繼續(xù)執(zhí)行(相當(dāng)于執(zhí)行一次無條件跳轉(zhuǎn))。保存 STR指令地址 +偏移量 LDR R0,[R0] 。 寄存器組織 ? 讀 R15的限制 計(jì)算偏移量程序代碼: SUB R1,PC,4 。偏移量是 8還是 12取決于具體的 ARM芯片,但是對(duì)于一個(gè)確定的芯片,這個(gè)值是一個(gè)常量。 LDR R0,PC ??? ??? PC PC4 PC8 正在執(zhí)行 正在譯碼 正在取指 流水線狀態(tài) 地址 程序代碼 寄存器組織 ? 讀 R15的限制 當(dāng)使用 STR或 STM指令保存 R15時(shí),會(huì)有一個(gè)例外。 ? 讀 R15的限制 正常操作時(shí),從 R15讀取的值是處理器正在取指的地址,即當(dāng)前正在執(zhí)行指令的地址加上 8個(gè)字節(jié)(兩條 ARM指令的長度)??梢哉J(rèn)為它是一個(gè)通用寄存器,但是對(duì)于它的使用有許多與指令相關(guān)的限制或特殊情況。 寄存器組織 ? R14寄存器注意要點(diǎn) R14 R14_irq 用戶模式下的程序 IRQ模式下的程序 A a return B ... X A 地址 A 地址 A 下的程序; IRQ中斷,硬件將某個(gè)地址存入 IRQ模式下的 R14_irq寄存器, 用戶模式下的 R14沒有被破壞 ; 3. IRQ服務(wù)程序 A執(zhí)行完畢,將 R14_irq寄存器的內(nèi)容減去某個(gè)常量后存入 PC,返回之前被中斷的程序; 未被破壞 ? R14寄存器注意要點(diǎn) R14 R14_irq 用戶模式下的程序 IRQ模式下的程序 A a B ... X A 地址 A 地址 A 下的程序; IRQ中斷,硬件將某個(gè)地址存入 IRQ模式下的 R14_irq寄存器, 用戶模式下的 R14沒有被破壞 ; 3. IRQ服務(wù)程序 A執(zhí)行完畢,將 R14_irq寄存器的內(nèi)容減去某個(gè)常量后存入 PC,返回之前被中斷的程序; 未被破壞 IRQ模式下的程序 B a return B ... X A 地址 B 地址 B4. 如果在 IR
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1