ARM處理器的工作模式 ARM處理器狀態 ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換:第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令;第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態的轉變并不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處于ARM狀態。 ARM處理器狀態 進入Thumb狀態:當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處于Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。 進入ARM狀態:當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。ARM處理器模式 ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執行狀態。快速中斷模式(fiq):用于高速數據傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統使用的保護模式。數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。系統模式(sys):運行具有特權的操作系統任務。定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。ARM處理器模式 ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權模式;其中除去用戶模式和系統模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統資源等情況。ARM寄存器 ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。 關于寄存器這里就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。異常處理 當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以后,ARM微處理器會執行以下幾步操作:進入異常處理的基本步驟:將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR復制到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。 ARM微處理器對異常的響應過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當運行于 ARM 工作狀態時If == Reset or FIQ then;當響應 FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:將連接寄存器LR的值減去相應的偏移量后送到PC中。將SPSR復制回CPSR中。若在進入異常處理時設置了中斷禁止位,要在此清除。
上傳時間: 2013-11-15
上傳用戶:hanbeidang
本書以新一代Pentium系列微處理器和MASM 6.1X為背景,全面系統地敘述了16/32位PC匯編語言程序設計方法和最新知識與技術。全書共12章,分為三個層次:基本原理方法篇(第一~六章)介紹了Pentium工作方式和擴展技術,16/32位寄存器,存儲尋址機制,指令尋址與指令系統,匯編語法與偽指令,順序分支和循環程序設計,子程序嵌套與違歸及COM文件的編制。程序設計應用篇(第七~十章)介紹了表處理的排序檢索,加密、解密,磁盤文件管理,時鐘與駐留,BIOS中斷調用技術,機器人圖形動畫,輸入/輸出接口程序,異步通信,匯編語言與高級語言的混合編程。知識拓展技術篇(第十一~十二章)介紹了分段、分頁管理與多任務保護機制,實方式與保護方式切換示例,虛擬86方式的使用程序,多媒體匯編MMX和SSE指令及其編程設計與優化處理等。通過程序示例與軟件工具用法示范以及附錄列表,說明了如何進行軟件開發。各章之后均附有適量的習題。該書體系結構逐層推進,層內循序漸進;融會多年教學研究成果,內容新穎豐富,重點突出學用結合;教學內容易于教師和學生根據實際層次水平按需組合。
上傳時間: 2016-03-25
上傳用戶:qiaoyue
通用數據傳送指令. MOV 傳送字或字節. MOVSX 先符號擴展,再傳送. MOVZX 先零擴展,再傳送. PUSH 把字壓入堆棧. POP 把字彈出堆棧. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次彈出堆棧. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次彈出堆棧. BSWAP 交換32位寄存器里字節的順序 XCHG 交換字或字節.( 至少有一個操作數為寄存器,段寄存器不可作為操作數) CMPXCHG 比較并交換操作數.( 第二個操作數必須為累加器AL/AX/EAX ) XADD 先交換再累加.( 結果在第一個操作數里 ) XLAT 字節查表轉換. ── BX 指向一張 256 字節的表的起點, AL 為表的索引值 (0-255,即 0-FFH) 返回 AL 為查表結果. ( [BX+AL]->AL )
上傳時間: 2016-08-17
上傳用戶:13681659100
十進制打印AX寄存器中的值的函數 對64位數的高32位進行遞歸排序
上傳時間: 2013-12-22
上傳用戶:cazjing
高性能、低功耗的 AVR® 8 位微處理器 • 先進的 RISC 結構 – 133 條指令 – 大多數可以在一個時鐘周期內完成 – 32 x 8 通用工作寄存器 + 外設控制寄存器 – 全靜態工作 – 工作于16 MHz 時性能高達16 MIPS
上傳時間: 2016-08-11
上傳用戶:趙云興
30個典型的C語言應用實例:單片機實現7段數碼管顯示,基于MAX7219的8位數碼管顯示,MAX7219的工作時序和寄存器描述,單片機實現液晶顯示,單片機實現電子密碼鎖, 單片機實現簡單音樂發生器,單片機實現語音錄放,基于MAX197的并行A/D轉換,基于TLC549的串行A/D轉換,基于MAX517的串行D/A轉換,基于DS18B20的數字溫度計設計等等,例子超多 包括了書中所有的程序代碼和電路圖,稍加修改便可用于自己的設計中去
上傳時間: 2014-01-21
上傳用戶:shawvi
使用verilog作為CPU設計語言實現單數據通路五級流水線的CPU。具有32個通用寄存器、一個程序計數器PC、一個標志寄存器FLAG,一個堆棧寄存器STACK。存儲器尋址粒度為字節。數據存儲以32位字對準。采用32位定長指令格式,采用Load/Store結構,ALU指令采用三地址格式。支持有符號和無符號整數加、減、乘、除運算,并支持浮點數加、減、乘、除四種運算,支持與、或、異或、非4種邏輯運算,支持邏輯左移、邏輯右移、算術右移、循環右移4種移位運算,支持Load/Store操作,支持地址/立即數加載操作,支持無條件轉移和為0轉移、非0轉移、無符號>轉移、無符號<轉移、有符號>轉移、有符號<轉移等條件轉移。
上傳時間: 2013-12-11
上傳用戶:源弋弋
/*--------- 8051內核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序狀態字寄存器 sbit CY = PSW^7; //進位標志位 sbit AC = PSW^6; //輔助進位標志位 sbit F0 = PSW^5; //用戶標志位0 sbit RS1 = PSW^4; //工作寄存器組選擇控制位 sbit RS0 = PSW^3; //工作寄存器組選擇控制位 sbit OV = PSW^2; //溢出標志位 sbit F1 = PSW^1; //用戶標志位1 sbit P = PSW^0; //奇偶標志位 sfr SP = 0x81; //堆棧指針寄存器 sfr DPL = 0x82; //數據指針0低字節 sfr DPH = 0x83; //數據指針0高字節 /*------------ 系統管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //電源控制寄存器 sfr AUXR = 0x8E; //輔助寄存器 sfr AUXR1 = 0xA2; //輔助寄存器1 sfr WAKE_CLKO = 0x8F; //時鐘輸出和喚醒控制寄存器 sfr CLK_DIV = 0x97; //時鐘分頻控制寄存器 sfr BUS_SPEED = 0xA1; //總線速度控制寄存器 /*----------- 中斷控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中斷允許寄存器 sbit EA = IE^7; //總中斷允許位 sbit ELVD = IE^6; //低電壓檢測中斷控制位 8051
上傳時間: 2013-10-30
上傳用戶:yxgi5
系統控制協處理器是MIPS體系結構CPU中必需的一個單元模塊。它最主要的功能就是利用一系列特權寄存器記錄當前CPU所處的狀態,負責異常/中斷處理,提供指令正常執行所需的環境。本文論述了一個實現MIPS 4Kc指令集CPU中系統控制協處理器的設計,包括對特權寄存器寫操作的實現,精確異常處理機制和全定制后端物理設計。關鍵詞:32位嵌入式CPU,系統控制協處理器,精確異常處理,流水線,全定制MIPS體系結構中的系統控制協處理器簡稱CP0,它提供指令正常執行所需的環境,進行異常/中斷處理、高速緩存填充、虛實地址轉換、操作模式轉換等操作。單從硬件的角度而言,系統控制協處理器對指令集的作用就相當于操作系統對應用程序的作用一樣。
上傳時間: 2014-11-22
上傳用戶:daijun20803
本文概括介紹了HT1380 時鐘芯片的特點和基本組成通過實例詳細說明了有關功能的應用軟件關于 HT1380 各寄存器的詳細位控功能請參考HOLTEK 合泰公司的相應產品資料
上傳時間: 2015-04-06
上傳用戶:cmc_68289287