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

正文內(nèi)容

匯編及嵌入式c語(yǔ)言—第二章(完整版)

  

【正文】 11 10 9 8 8 7 6 5 4 4 3 2 1 0 0 低地址 高地址 問題: 32bits寬的數(shù) 0x12345678存放 在 0xb00d4000— 0xb00d4003存 儲(chǔ)器中,在大端模式如何放置? 在小端模式又如何放置? 處理器模式 ARM處理器支持 7種運(yùn)行模式: 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權(quán)任務(wù)等 僅在 ARMv4及以上版本中存在,與用戶模式類似,但可以直接切換到其它模式 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應(yīng)時(shí)進(jìn)入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應(yīng)時(shí)進(jìn)入此模式 特權(quán) (svc) 操作系統(tǒng)保護(hù)代碼 系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式 中止 (abt) 當(dāng)數(shù)據(jù)或指令預(yù)取中止時(shí)進(jìn)入該模式 未定義 (und) 當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式 未定義指令異常響應(yīng)時(shí)進(jìn)入此模式 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權(quán)任務(wù)等 與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應(yīng)時(shí)進(jìn)入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應(yīng)時(shí)進(jìn)入此模式 管理 (svc) 操作系統(tǒng)保護(hù)代碼 系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式 中止 (abt) 當(dāng)數(shù)據(jù)或指令預(yù)取中止時(shí)進(jìn)入該模式 未定義 (und) 當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式 未定義指令異常響應(yīng)時(shí)進(jìn)入此模式 除用戶模式外,其它模式均為 特權(quán)模式 。即在異常中斷處理程序入口的一些指令是 ARM指令,然后根據(jù)需要程序可以切換到 Thumb狀態(tài),在異常中斷處理程序返回前,程序再切換到 ARM狀態(tài)。ARM處理器 及嵌入式 C語(yǔ)言 第二章 ARM編程模型和指令集介紹 ARM編程模型 指令長(zhǎng)度及數(shù)據(jù)類型 – 指令集可以是以下任一種 ?32 bits 長(zhǎng) (ARM狀態(tài) ) ?16 bits 長(zhǎng) (Thumb狀態(tài) ) 特別說明: Thumb指令集可以看作是 ARM指令壓縮形式 的子集,它是為減小代碼量而提出,具有 16bit的代碼 密度。 4. ARM處理器總是從 ARM狀態(tài)開始執(zhí)行。 ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個(gè)模式訪問一些受控的資源。 寄存器類別 寄存器在匯編中的名稱 各模式下實(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_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq 9_fiq 其中 R0~ R7為 未分組的寄存器 ,也就是說對(duì)于任何處理器模式,這些寄存器都對(duì)應(yīng)于相同的 32位物理寄存器。在 ARM指令集當(dāng)中,沒有以特殊方式使用 R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是如果允許在 IRQ模式下的中斷處理程序重新使能 IRQ中斷,并且發(fā)生了嵌套的 IRQ中斷時(shí),外部中斷處理程序保存在 R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。這些指令可能將當(dāng)前指令地址加 8字節(jié)或加 12字節(jié)保存(將來可能還有其它數(shù)字)。 讀 R15的限制 由于 ARM指令以字節(jié)為邊界,因此寫入 R15的值最低兩位通常為 0b00。 對(duì)于移位操作指令 , C為從最高位最后移出的值 , 其它指令 C通常不變; 當(dāng)進(jìn)行加法 /減法運(yùn)算,并且發(fā)生有符號(hào)溢出時(shí) V=1,否則 V=0,其它指令 V通常不變。 在程序中 ,不能修改此 bit位 。 注意: ARM7TDMI內(nèi)核在中斷異常時(shí)置位中斷禁止標(biāo)志,這樣可以防止不受控制的異常嵌套。 IRQ的優(yōu)先級(jí)低于 FIQ,對(duì)于 FIQ它是被屏蔽的。軟件可使用這一機(jī)制通過模擬未定義的協(xié)處理器指令來擴(kuò)展 ARM指令集。 ? 第 2個(gè)操作數(shù) ALU 桶形移位器 Rd 結(jié)果 N 預(yù)處理 未預(yù)處理 Rm Rn ? 第 2個(gè)操作數(shù) ▲ Rm , shift—— 寄存器移位方式 LSL移位操作: 0 LSR移位操作: 0 ASR移位操作: ROR移位操作: RRX移位操作: C C C C C ? 第 2個(gè)操作數(shù) ▲ Rm , shift—— 寄存器移位方式 ADD R1,R1,R1,LSL 3 。 Else b++。將指定地址上的字節(jié)數(shù)據(jù)讀入 Rd,高 24位清零 STR{cond}B{T} Rd,地址 。 如: LDR R1,[R0,R2,LSL 2] 。 如: LDR R0,[R1], 4 ; R0 ← [R1],R1=R1+4 LDR R0,[R1], R2 ; R0 ← [R1], R1=R1R2 LDR R0,[R1], R2, LSL 2 ; R0 ← [R1], R1=R1+R2*4 如果 [0x80]=0x8, [0x84]=0x7, [0x88]=0x10 , 那么順序執(zhí)行以下操作后, R R3和 R4中的內(nèi) 容是多少呢? LDR R4,=0x80 LDR R3,[R4],4 LDR R2,[R4,4]! LDR R1,[R3,R2,LSL 8] 雜類 Load/Store指令的尋址方式 ? 這類 LDR/STR指令可以加載帶符號(hào)字節(jié)、加載帶符號(hào)半字、加載 /存儲(chǔ)無符號(hào)半字。 將 Rd的數(shù)據(jù)存儲(chǔ)到指定地址上,將 R(d+1)的數(shù)據(jù)存儲(chǔ)到(指定地址 +4)的地址上 注意: Rd 加載 /存儲(chǔ)寄存器中的一個(gè),另一個(gè)是 R( d+1)??捎糜诋惓L幚矸祷?。使用數(shù)據(jù)塊傳送指令進(jìn)行堆棧操作 STMDA R0!,{R5R6} . . . LDMIB R0!,{R5R6} 。指令格式如下: BL{cond} Label BL Label xxx xxx Label xxx MOV PC,LR Addr1 Addr2 xxx xxx LR PC Addr1 LabelAddr2 Addr2 BL跳轉(zhuǎn)指令時(shí),硬件將下一條指令的地址 Addr2裝入 LR寄存器,并把跳轉(zhuǎn)地址裝入程序計(jì)數(shù)器( PC) 2. 程序跳轉(zhuǎn)到目標(biāo)地址Label繼續(xù)執(zhí)行,當(dāng)子程序執(zhí)行結(jié)束后,將 LR寄存器內(nèi)容存入 PC,返回調(diào)用函數(shù)繼續(xù)執(zhí)行 跳轉(zhuǎn)指令 ? 帶狀態(tài)切換的跳轉(zhuǎn)指令 —— BX指令,該指令可以根據(jù)跳轉(zhuǎn)地址( Rm)的最低位來切換處理器狀態(tài)。指令格式如下: BLX Label BLX{cond} Rm 數(shù)據(jù)處理指令 ? 數(shù)據(jù)處理指令的作用是通過寄存器來對(duì)操作數(shù)進(jìn)行計(jì)算,大致可分為 3類: – 數(shù)據(jù)傳送指令; – 算術(shù)邏輯運(yùn)算指令; – 比較指令。 跳轉(zhuǎn)指令有以下四種: – 跳轉(zhuǎn)指令 B; – 帶返回的跳轉(zhuǎn)指令 BL; – 帶狀態(tài)切換的跳轉(zhuǎn)指令 BX; – 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 BLX。 ? 多寄存器加載 /存儲(chǔ)指令的 8種模式如下表所示,右邊四種為堆棧操作、左邊四種為數(shù)據(jù)傳送操作。 舉例如下: LDRD R6,[R11] ; R6 ← [R11], R7 ← [R11+4] STRD R4,[R9,24] ; R4 → [R9+24], R5 → [R9+28] LDRD R0,[R2], 2 ; R0 ← [R2], R1 ← [R2+4], R2=R2+2 STRD R2,[R0,2]! ; [R0+2] ← R2, [R0+6] ← R3, R0=R0+2 批量 Load/Store指令的尋址方式 ? 多寄存器加載 /存儲(chǔ)指令可以實(shí)現(xiàn)在一組寄存器或一塊連續(xù)的內(nèi)存單元之間傳輸數(shù)據(jù)。加載指定地址上的數(shù)據(jù)(帶符號(hào)字節(jié)),放入 Rd中 LDR{cond}SH Rd,地址 。R3 ← [R4R5/16] ? 從尋址方式的地址計(jì)算方法分, Load/Store指令有以下三種形式 : ▲ 偏移量方法。 地址偏移量有以下 3種格式: ▲ 立即數(shù)。R0( a) 與 R1( b) 比較 ADDHI R0,R0,1 。R1=R1(R2R3) MOV R0,R1,ROR 2 。在 FIQ處理結(jié)束后返回到數(shù)據(jù)中止處理程序。 ? 中止( Abort) : 中止發(fā)生在對(duì)存儲(chǔ)器的訪問不能完成時(shí),中止包含兩種類型: – 指令預(yù)取中止 發(fā)生在指令預(yù)取過程中 – 數(shù)據(jù)中止 發(fā)生在對(duì)數(shù)據(jù)訪問時(shí) ? 指令預(yù)取中止 當(dāng)發(fā)生指令預(yù)取中止時(shí),處理器內(nèi)核將預(yù)取的指令標(biāo)記為無效,但在指令到達(dá)流水線的執(zhí)行階段時(shí)才進(jìn)入異常。當(dāng)處理器處于 Thumb狀態(tài)時(shí)發(fā)生了異常,在異常向量地址裝入 PC時(shí),會(huì)自動(dòng)切換到 ARM狀態(tài)。 異常 只要正常的程序流被暫時(shí)中止,處理器就進(jì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 寄存器 CPSR為 當(dāng)前程序狀態(tài)寄存器 ,在異常模式中,另外一個(gè)寄存器“備份程序狀態(tài)寄存器( SPSR)”可以被訪問。 所以最好避免使用 STR和 STM指令來保存R15,如果很難做到,那么應(yīng)當(dāng)在程序中計(jì)算出該芯片的偏移量。 寄存器類別 寄存器在匯編中的名稱 各模式下實(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_
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1