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

正文內(nèi)容

arm體系結(jié)構(gòu)chappt課件(參考版)

2025-05-15 04:48本頁面
  

【正文】 習(xí)題 ? RISC和 CISC系統(tǒng)的區(qū)別 ? 馮 為了提高程序的可移植性,當(dāng)改變 CPSR標(biāo)志和控制位時,請不要改變這些保留位。 注意 :不是所有模式位的組合都定義了有效的處理器模式,如果使用了錯誤的設(shè)臵,將引起一個無法恢復(fù)的錯誤。 ?T位反映了正在操作的狀態(tài): ?當(dāng) T位臵位時,處理器正在 Thumb狀態(tài)下運行; ?當(dāng) T位清零時,處理器正在 ARM狀態(tài)下運行。 它們分別是: ?中斷禁止位; ?T位; ?模式位。 程序狀態(tài)寄存器 ? 控制位 CPSR的最低 8位為控制位,當(dāng)發(fā)生異常時,這些位被硬件改變。當(dāng)進行減法運算 (包括CMP 指令 ),并且最高位產(chǎn)生借位時 C=0,否則C=1。 程序狀態(tài)寄存器 ? 條件代碼標(biāo)志 各標(biāo)志位的含義如下: ?N 運算結(jié)果的最高位反映在該標(biāo)志位。通過算術(shù)操作、邏輯操作、 MSR或者 LDM指令可以對這些位進行設(shè)臵。通常如果指令帶 S后綴,則該指令的執(zhí)行會影響條件代碼標(biāo)志;但有一些指令的執(zhí)行總是會影響條件代碼標(biāo)志。 注意 :如果通過程序修改 CPSR寄存器中的模式位進入異常模式,那么硬件將不會把 CPSR保存至 SPSR中。 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 程序狀態(tài)寄存器 ? 簡介 條件代碼標(biāo)志 保留 控制位 溢出標(biāo)志 進位或借位擴展 零 負(fù)或小于 IRQ禁止 FIQ禁止 狀態(tài)位 模式位 CPSR寄存器的格式 程序狀態(tài)寄存器 ? 簡介 每個異常模式還帶有一個程序狀態(tài)保存寄存器 ( SPSR),它用于保存在異常事件發(fā)生之前的 CPSR。 第 3章 目錄 ? ? ?內(nèi)部框圖 ?數(shù)據(jù)類型 ? ? ? ?8. 程序狀態(tài)寄存器 ? ? ? ?I/O ? ? ? ? ? 程序狀態(tài)寄存器 ? 簡介 ARM7TDMI內(nèi)核包含 1個 CPSR和 5個供異常處理程序使用的 SPSR。匯編語言程序員對它們的訪問受到限制,但可以將它們用于快速暫存。 內(nèi)部寄存器 ? ARM狀態(tài)和 Thumb狀態(tài)之間寄存器的關(guān)系 Thumb狀態(tài)寄存器與 ARM狀態(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)。 Thumb狀態(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) 通用寄存器和程序計數(shù)器 快中斷 中斷 未定義 中止 管理 系統(tǒng) 用戶 各模式下實際訪問的寄存器 寄存器在匯編中的名稱 寄存器類別 鏈接寄存器 LR對應(yīng) ARM狀態(tài)寄存器R14,在結(jié)構(gòu)上有兩個特殊功能,詳見“ ARM狀態(tài)下的鏈接寄存器 LR”。每個異常模式都有其自身的 SP分組版本, SP通常指向各異常模式所專用的堆棧。它們是完全通用的寄存器,不會被體系結(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) 通用寄存器和程序計數(shù)器 快中斷 中斷 未定義 中止 管理 系統(tǒng) 用戶 各模式下實際訪問的寄存器 寄存器在匯編中的名稱 寄存器類別 在匯編語言中寄存器 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) 通用寄存器和程序計數(shù)器 快中斷 中斷 未定義 中止 管理 系統(tǒng) 用戶 各模式下實際訪問的寄存器 寄存器在匯編中的名稱 寄存器類別 注意:括號內(nèi)為 ATPCS中寄存器的命名,可以使用 RN匯編偽指令將寄存器定義多個名字。每種異常都有自己的 SPSR,在因為異常事件而進入異常時它保存 CPSR的當(dāng)前值,異常退出時可通過它恢復(fù) CPSR。具體的規(guī)則取決于內(nèi)核結(jié)構(gòu)的版本: ?在 ARM結(jié)構(gòu) V3版及以下版本中,寫入 R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實際目標(biāo)地址(寫入 R15的值)和 0xFFFFFFFC相與得到; ?在 ARM結(jié)構(gòu) V4版及以上版本中,寫入 R15的值的最低兩位為 0,如果不是,結(jié)果將不可預(yù)測。計算偏移量 內(nèi)部寄存器 ? 寫 R15的限制 正常操作時,寫入 R15 的值被當(dāng)作一個指令地址,程序從這個地址處繼續(xù)執(zhí)行(相當(dāng)于執(zhí)行一次無條件跳轉(zhuǎn))。保存 STR指令地址 +偏移量 LDR R0,[R0] 。 內(nèi)部寄存器 ? 讀 R15的限制 計算偏移量程序代碼: SUB R1,PC,4 。偏移量是 8還是 12取決于具體的 ARM芯片,但是對于一個確定的芯片,這個值是一個常量。 LDR R0,PC ??? ??? PC PC4 PC8 正在執(zhí)行 正在譯碼 正在取指 流水線狀態(tài) 地址 程序代碼 內(nèi)部寄存器 ? 讀 R15的限制 當(dāng)使用 STR或 STM指令保存 R15時,會有一個例外。 內(nèi)部寄存器 ? 讀 R15的限制 正常操作時,從 R15讀取的值是處理器正在取指的地址,即當(dāng)前正在執(zhí)行指令的地址加上 8個字節(jié)(兩條 ARM指令的長度)??梢哉J(rèn)為它是一個通用寄存器,但是對于它的使用有許多與指令相關(guān)的限制或特殊情況。 內(nèi)部寄存器 ? R14寄存器注意要點 R14 R14_irq 用戶模式下的程序 IRQ模式下的程序 A a return B ... X A 地址 A 地址 A 下的程序; IRQ中斷,硬件將某個地址存入 IRQ模式下的 R14_irq寄存器, 用戶模式下的 R14沒有被破壞 ; 3. IRQ服務(wù)程序 A執(zhí)行完畢,將 R14_irq寄存器的內(nèi)容減去某個常量后存入 PC,返回之前被中斷的程序; 未被破壞 內(nèi)部寄存器 ? R14寄存器注意要點 R14 R14_irq 用戶模式下的程序 IRQ模式下的程序 A a B ... X A 地址 A 地址 A 下的程序; IRQ中斷,硬件將某個地址存入 IRQ模式下的 R14_irq寄存器, 用戶模式下的 R14沒有被破壞 ; 3. IRQ服務(wù)程序 A執(zhí)行完畢,將 R14_irq寄存器的內(nèi)容減去某個常量后存入 PC,返回之前被中斷的程序; 未被破壞 IRQ模式下的程序 B a return B ... X A 地址 B 地址 B4. 如果在 IRQ處理程序中打開 IRQ中斷,并且再次發(fā)生 IRQ中斷,或者調(diào)用子程序; 5. 硬件將返回地址保存在R14_irq寄存器中, 原來保存的返回地址將被覆蓋,造成錯誤 ; 被破壞 6. 在程序 B返回到程序 A,然后在返回到用戶模式下被中斷的程序時,發(fā)生錯誤,將不能正確返回; return 解決辦法是確保 R14的對應(yīng)版本在發(fā)生中斷嵌套時不再保存任何有意義的值(將 R14入棧),或者切換到其它處理器模式下。 例如:如果用戶在用戶模式下執(zhí)行程序時發(fā)生了IRQ中斷,用戶模式寄存器不會被破壞。區(qū)別在于有些異常有一個小常量的偏移。 Lable 程序 A 程序 B R14 內(nèi)部寄存器 ? R14寄存器與子程序調(diào)用 BL Lable 地址 A ??? MOV PC,LR R14(地址 A) ??? A執(zhí)行過程中調(diào)用程序 B; 操作流程 Lable,執(zhí)行程序 B。但是在 Thumb指令集中存在使用R13的指令。 fi i t i t 寄存器類別 寄存器在匯編中的名稱 各模式下實際訪問的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計數(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( SP) 寄存器 R13常作為 堆棧指針( SP)。 寄存器類別 寄存器在匯編中的名稱 各模式下實際訪問的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計數(shù)器 R
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1