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

正文內(nèi)容

arm體系結(jié)構(gòu)清華第一章(文件)

2025-05-31 03:18 上一頁面

下一頁面
 

【正文】 5 指令 MOV PC, PC 將程序跳轉(zhuǎn)到當(dāng)前指令下面第 2條指令處執(zhí)行。它包含了條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志以及其他的一些控制和狀態(tài)位。 CPSR的格式如下所示。 通常如果指令帶 S后綴,則該指令的執(zhí)行會影響條件代碼標(biāo)志;但有一些指令的執(zhí)行總是會影響條件代碼標(biāo)志。對于結(jié)合移位操作的非加法 /減法指令, C為從最高位最后移出的值,其它指令C通常不變; V 當(dāng)進行加法 /減法運算,并且發(fā)生有符號溢出時V=1,否則 V=0,其它指令 V通常不變。 3. CPSR中的控制位 CPSR的低 8位 I、 F、 T及 M[4∶ 0]統(tǒng)稱為控制位。 當(dāng) F=1時禁止 FIQ中斷。 M控制位 控制位 M[4∶ 0]控制處理器模式 不是所有模式位的組合都定義了有效的處理器模式,如果使用了錯誤的設(shè)置,將引起一個無法恢復(fù)的錯誤。 例如響應(yīng)一個來自外設(shè)的中斷。整個過程是按順序執(zhí)行。 異常中斷名稱 含 義 復(fù)位 (Reset) 當(dāng)處理器的復(fù)位引腳有效時,系統(tǒng)產(chǎn)生復(fù)位異常中斷,程序跳轉(zhuǎn)到復(fù)位異常中斷處理程序處執(zhí)行。在實時操作系統(tǒng) (RTOS)中可以通過該機制實現(xiàn)系統(tǒng)功能調(diào)用 指令預(yù)取中止 (Prefech Abort) 如果處理器預(yù)取的指令的地址不存在,或者該地址不允許當(dāng)前指令訪問,當(dāng)該被預(yù)取的指令執(zhí)行時,處理器產(chǎn)生指令預(yù)取中止異常中斷 數(shù)據(jù)訪問中止 (Data Abort) 如果數(shù)據(jù)訪問指令的目標(biāo)地址不存在,或者該地址不允許當(dāng)前指令訪問,處理器產(chǎn)生數(shù)據(jù)訪問中止異常中斷 外部中斷請求 (IRQ) 當(dāng)處理器的外部中斷請求引腳有效,而且 CPSR寄存器的 I控制位被清除時,處理器產(chǎn)生外部中斷請求 (IRQ)異常中斷。 將寄存器 lr_mode設(shè)置成返回地址。 復(fù)位異常中斷處理程序不需要返回。當(dāng)處理器處于Thumb狀態(tài)時發(fā)生了異常,在異常向量地址裝入PC時,會自動切換到 ARM狀態(tài)。 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型 體系結(jié)構(gòu)直接支持的數(shù)據(jù)類型 ARM處理器支持下列數(shù)據(jù)類型: ?字節(jié) 8位 ?半字 16位(必須分配為占用兩個字節(jié)) ?字 32位(必須分配為占用 4各字節(jié)) 1 1 1 2 3 4 2 78 ARM體系中的存儲空間 ARM體系使用單一的平板地址空間。這些字單元的地址可以被 4整除,也就是說該地址的低兩位為 0b00。地址為 A的半字?jǐn)?shù)據(jù)包括地址為 A、 A+1兩個字節(jié)單元的內(nèi)容。 31 24 2 3 16 1 5 8 7 0 字單元 A 半字單元 A 半字單元 A + 2 字節(jié)單元 A 字節(jié)單元 A + 1 字節(jié)單元 A + 2 字節(jié)單元 A + 3 80 ARM存儲器格式 在 littleendian格式中,存儲器格式如圖 示。在存儲訪問操作中,如果存儲單元的地址沒有遵守上述的對齊規(guī)則,則稱為非對齊 (unaligned)的存儲訪問操作。 忽略字單元地址的低兩位的值 ,即訪問地址為 (address AND 0XFFFFFFC)的字單元;忽略半字單元地址的最低位的值,即訪問地址為 (address AND 0XFFFFFFE)的半字單元。在 CPU執(zhí)行當(dāng)前指令的同時,可以從存儲器中預(yù)取其后若干條指令,具體預(yù)取多少條指令,不同的 ARM實現(xiàn)中有不同的數(shù)值。當(dāng)指令被預(yù)取后,在該指令被執(zhí)行前,如果有數(shù)據(jù)訪問指令修改了位于主存中的該指令,這時被預(yù)取的指令和主存中對應(yīng)的指令不同,從而可能使執(zhí)行的結(jié)果發(fā)生錯誤。 自修改代碼指的是代碼在執(zhí)行過程中可能修改自身。也就是說,這時該地址值原封不動地送到存儲系統(tǒng)。 2. 非對齊的數(shù)據(jù)訪問操作 對于 Load/Store操作,如果是非對齊的數(shù)據(jù)訪問操作,系統(tǒng)定義了下面 3種可能的結(jié)果。 ?大端存儲器系統(tǒng): 在大端格式中 , 低字節(jié)存放在高地址中 , 高字節(jié)存放在低地址中 。但是在字單元中, 4個字節(jié)哪一個是高位字節(jié),哪一個是低位字節(jié)則有兩種不同的格式: bigendian格式和 littleendian格式。 在 ARM版本 4及以上的版本中, ARM的地址空間也可以看作是 231個 16位的半字單元。這些字節(jié)單元的地址是一個無符號的 32位數(shù)值,其取值范圍為 0到 2321。 IRQ01BackAddr JumpAddr return SYS 1 ? 0 . . . ? ? ? ? BackAddr4 “ ?”表示對該位不關(guān)心 76 ARM體系中存儲系統(tǒng) 關(guān)于 ARM體系的存儲系統(tǒng)在第 5章有詳細的介紹。 注意 : ARM內(nèi)核在中斷異常時置位中斷禁止標(biāo)志,這樣可以防止不受控制的異常嵌套。 72 從異常中斷處理程序中返回 從異常中斷處理程序中返回包括以下兩個基本操作: 恢復(fù)被中斷的程序的處理器狀態(tài),即將SPSR_mode寄存器內(nèi)容復(fù)制到 CPSR中。 保存處理器狀態(tài)、中斷屏蔽位以及各條件標(biāo)志位到相應(yīng)異常對應(yīng)的 SPSR_mode中。 軟件中斷 (software interrupt SWI) 這是一個由用戶定義的中斷指令。 當(dāng)異常中斷發(fā)生時,系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。 如果同時發(fā)生兩個或更多異常,那么將按照固定的順序來處理異常,如:“異常優(yōu)先級”。應(yīng)用軟件不要操作這些位,以免與 ARM將來版本的擴展沖突。 對于 ARM v4以及更高的版本的 T系列的 ARM處理器, T控制位含義如下: T=0表示執(zhí)行 ARM指令。在特權(quán)級的處理器模式下,軟件可以修改這些控制位。 在 ARM v5以前的版本及 ARM v5的非 E系列的處理器中, Q標(biāo)志位沒有被定義。對于有符號二進制補碼,結(jié)果為負數(shù)時 N=1,結(jié)果為正數(shù)或零時 N=0; Z 指令結(jié)果為 0時 Z=1,否則 Z=0;對于 CMP指令, Z=1表示進行比較的兩個數(shù)大小相等 C 當(dāng)進行加法運算,并且最高位產(chǎn)生進位時 C=1,否則 C=0。 1. 條件標(biāo)志位 2. Q標(biāo)志位 3. CPSR中的控制位 4. CPSR中的其他位 1. 條件標(biāo)志位 N (Negative)、 Z (Zero)、 C (Carry) 及 V (oVerflow)統(tǒng)稱為條件標(biāo)志位。當(dāng)特定的異常中斷發(fā)生時,這個寄存器用于存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容。 類似的指令還有 ADD PC, PC, 0。也就是說,對于 ARM指令集來說, PC指向當(dāng)前指令的下兩條指令的地址。 R14寄存器也可以作為通用寄存器使用。當(dāng)通過 BL或 BLX指令調(diào)用子程序時, R14被設(shè)置成該子程序的返回地址。應(yīng)用程序初始化該 R13,使其指向該異常模式專用的棧地址。 對于備份寄存器 R13和 R14來說,每個寄存器對應(yīng) 6個不同的物理寄存器, 采用下面的記號來區(qū)分各個物理寄存器: Rn_mode (其中, mode可以是下面幾種模式之一: usr、sys、 svc、 abt、 und、 irq及 fiq。 52 通用寄存器 通用寄存器可以分為下面 3類: 未備份寄存器 (The unbanked registers),包括 R0~ R7??梢哉J為它是一個通用寄存器,但是對于它的使用有許多與指令相關(guān)的限制或特殊情況。 例如:如果用戶在用戶模式下執(zhí)行程序時發(fā)生了IRQ中斷,用戶模式寄存器不會被破壞。 45 Lable 程序 A 程序 B R14 R14( LR)寄存器與子程序調(diào)用 BL Lable 地址 A ??? MOV PC,LR R14(地址 A) Lable 。 14_fi 14_ir R14_und R14_abt 14_svc 14 13_fiR13_irq R13_und R13_abt R13_svc R13 43 寄存器類別 寄存器在匯編中的名稱 各模式下實際訪問的寄存器 用戶 系統(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),通常 R13應(yīng)當(dāng)被初始化成指向異常模式分配的堆棧。一個用于除 FIQ模式之外的所有寄存器模式,另一個用于 FIQ模式。它們是完全通用的寄存器,不會被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。任意時刻 (也就是任意的處理器模式下 ),可見的寄存器包括 15個通用寄存器 (R0~ R14)、一個或兩個狀態(tài)寄存器及程序計數(shù)器 (PC)。這些寄存器都是 32位寄存器。 系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。它們除了可以通過程序切換進入外,也可以由特定的異常進入。 處理器模式 說明 備注 用戶 (usr) 正常程序執(zhí)行模式 不能直接切換到其它模式 系統(tǒng) (sys) 運行操作系統(tǒng)的特權(quán)任務(wù) 與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應(yīng)時進入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應(yīng)時進入此模式 管理 /特權(quán) (svc) 操作系統(tǒng)使用的一種保護模式 系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進入此模式 中止 (abt) 用于支持虛擬內(nèi)存和 /或存儲器保護 在 ARM7TDMI沒有大用處 未定義 (und) 支持硬件協(xié)處理器的軟件仿真 未定義指令異常響應(yīng)時進入此模式 31 特權(quán)模式 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權(quán)任務(wù)等 與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應(yīng)時進入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應(yīng)時進入此模式 管理 (svc) 操作系統(tǒng)保護代碼 系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進入此模式 中止 (abt) 用于支持虛擬內(nèi)存和 /或存儲器保護 在 ARM7TDMI沒有大用處 未定義 (und)
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1