ARM的2種狀態和7種工作模式
一、ARM處理器的兩種工作狀態:
1、ARM狀態:32位,ARM狀態執行字對齊的32位ARM指令。
2、Thumb狀態,16位,執行半字對齊的16位
3、用Bx Rn指令來進行兩種狀態的切換:
其中Bx是跳轉指令,而Rn是暫存器(1個字,32位),如果Rn的位0為1,則進入Thumb狀態;如果Rn的位為0,這進入ARM狀態。(原因:ARM指令的後兩位始終為0,沒有用,而Thumb指令的後一位始終為0,沒有用,因此採用位0來表示ARM指令與Thumb指令的切換標誌位。)
注:1、ARM和Thumb兩種狀態之間的切換不影響處理器的工作模式和暫存器的內容。
2、ARM處理器在處理異常時,不過處理器處於什麼狀態,則都將切換到ARM狀態。(**********)
二、ARM處理器的7種模式:
1、使用者模式
ARM處理器正常的程式執行狀態。非特權模式(其他6種模式為特權模式)
2、系統模式
說明:使用者模式與系統模式兩者使用相同的暫存器,都沒有SPSR(Saved Program Statement Register,已儲存程式狀態暫存器),但系統模式比使用者模式有更高的許可權。
3、快中斷模式(Fast Interrupt Request)
用於高速資料傳輸或通道處理。
4、一般中斷模式(IRQ)
用於通用的中斷處理。
5、管理模式(Supervisor,SVC)
說明:系統復位或開機時則進入到SVC模式下
6、中止(abort)
說明:當遇到軟中斷(SWI,Software Interrupt)時,也將進入到SVC模式下
7、未定義(undefine)
說明:1、使用者模式外,其它6種模式稱為特權模式。所謂特權模式,即具有如下權利:a.MRS(把狀態暫存器的內容放到通用暫存器);b.MSR(把通用暫存器的內容放到狀態暫存器中)。由於狀態暫存器中的內容不能夠改變,因此要先把內容複製到通用暫存器中,然後修改通用暫存器中的內容,再把通用暫存器中的內容複製給狀態暫存器中即可完成“修改狀態暫存器”的任務。
這種七模式可以通過軟體改變,也可以通過中斷和異常改變
2、剩下的六種模式中除去系統模式外,統稱為異常模式。
三、ARM指令中有37個暫存器,有31個通用暫存器和6個狀態暫存器。
原因:系統模式和使用者模式共享相同的暫存器。使用者、系統模式沒有“儲存的程式狀態暫存器(SPSR)”,而其他5種模式分別有一個對應的“儲存的狀態暫存器(SPSR)”,即共五個SPSR,七個模式共用一個“當時程式狀態暫存器(CPSR)”,即共六個狀態暫存器,還有31個通用暫存器。
相關推薦
ARM的2種狀態和7種工作模式
一、ARM處理器的兩種工作狀態: 1、ARM狀態:32位,ARM狀態執行字對齊的32位ARM指令。 2、Thumb狀態,16位,執行半字對齊的16位 3、用Bx Rn指令來進行兩種狀態的切換: 其中Bx是跳轉指令,而Rn是暫存器(1個字,32位),如果Rn的位0為1,
ARM處理器的2種工作狀態和7種工作模式
兩種工作狀態 1、ARM狀態:32位,ARM狀態執行字對齊的32位ARM指令。 2、Thumb狀態,16位,執行半字對齊的16位指令。 3、用Bx Rn指令來進行兩種狀態的切換: 其中Bx是跳轉指令,而Rn是暫存器(1個字,32位),如果Rn的位0為1,則
生成樹中的5種交換機端口狀態和3種生成樹協議模式
style blocking 用戶數 forward 命令 learn 用戶數據 pvst+ class 端口狀態:①關閉(disable):端口處於管理關閉狀態 即DIS②阻塞(blocking): 不能轉發用戶數據 即BLK③監聽(listening): 接口開始啟動
數據庫事務4種隔離級別和7種傳播行為
事物 程序 單位 oracle 異常 邏輯 封裝 supported dbms 隔離級別越高,越能保證數據的完整性和一致性,但是對並發性能的影響也越大。對於多數應用程序,可以優先考慮把數據庫系統的隔離級別設為Read Committed。它能夠避免臟讀取,而且具有較
hibernate中實體類的三種狀態和crud操作
實體類 private int uid; private String name; private String age; private String address; public int getUid() { return uid;
java物件中的三種狀態和髒檢查及重新整理快取機制
瞬時狀態 瞬時狀態又稱臨時狀態.如果java物件與資料庫中的資料沒有任何的關聯,即此java物件在資料庫中沒有相關聯的記錄,此時java物件的狀態為瞬時狀態,session對於 瞬時狀態的ava物件是一無所知的,當物件不再被其他物件引用時,它的所有資料也就丟失了,物件將會被java虛擬機器按照垃圾回收
java之執行緒建立的兩種方式,六種狀態和匿名內部類建立子類或實現類物件
一.匿名內部類建立子類或實現類物件 new Test(){} 相當於建立了Test類的子類物件 並且沒有類名 建立介面實現類 new 介面名() {};介面實現類的物件 注意 : new 後邊是類或者介面名 大括號內是類或者介面中的方法 public
Vuex有那幾種狀態和屬性?
vuex的流程 頁面通過mapAction非同步提交事件到action。action通過commit把對應引數同步提交到mutation。mutation會修改state中對於的值。 最後通過getter把對應值跑出去,在頁面的計算屬性中,通過mapGett
Activity的四種狀態和生命週期
Android程式中,Activity是程式和使用者互動的介面,在系統中存在四種狀態:Running, Paused, Stopped, Killed。 Running是指Activity在系統中獲得焦點的狀態,此時使用者可以與該程式進行互動
2 Task中的延續和7種阻塞
1.wait using System; using System.Threading; using System.Threading.Tasks; namespace 多執行緒_List { class Program { static void Main(stri
XMLHttpRequest物件的幾種狀態和幾個重要屬性以及常用的方法
XMLHttpRequest的幾種狀態: 0: 物件沒有完成初始化 1: 物件開始傳送請求 2: 物件的請求傳送完成 3: 物件開始讀取伺服器響應 4: 物件讀取伺服器響應結束 1.onreadystatechange 指定XML
Hibernate: 三種狀態和CRUD四種操作
本篇部落格是初學hibernate時筆記總結,主要總結hibernate的三種狀態和hibernate的CRUD操作。 1. hibernate的三種狀態: Transient State : 瞬時狀態; Persistent State : 持久狀態
Activity的三種狀態和生命週期的七種方法
在理解activity前我們首先要搞清Application activity stack Task。 Application可以理解為就是app 那麼手機中有很多app這些app啟動時可以理解為一個任務 在每個任務中都對應一個activity 的stack activi
程序的幾種狀態和排程方法
1、程序的基本狀態: (1)執行:已經獲得必要的資源 佔用處理機 處理機正在執行該程序 (2)就緒:程序等待分配CPU (3)阻塞:等待某個事件 執行——>就緒:1,主要是程序佔用CP
機器學習的13種演算法和4種學習方法,推薦給大家
機器學習的演算法很多。很多時候困惑人們都是,很多演算法是一類演算法,而有些演算法又是從其他演算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是演算法的分類。 一、4大主要學習方式 1.監督式學習 在監督式學習下,輸入資料被稱為“訓練資料”,
CSS三種建立和六種選擇器
一、CSS簡介 層疊樣式表是一種用來表現HTML或XML等檔案樣式的計算機語言,CSS目前最新版為CSS3,是能夠真正做到網頁表現與內容分離的一種樣式設計語言,相對於傳統HTML的表現而言,CS
Spring中IoC兩種介面和兩種依賴注入方式的比較
spring是一個開源框架,是為了解決企業應用程式開發的複雜性而建立的,為J2EE應用程式開發提供整合的框架。簡單來說,spring是一個輕量級的控制反轉IOC和麵向切面AOP的容器框架。spring框架會對定義在配置檔案中的bean例項自動管理,這個bean也就是Java
技術人才的出路在哪裡,5種選擇和2種思路
作為一名對技術很感興趣的技術人,一直在探索自己的出路。 為什麼會有這個問題呢? 隨便一個懂技術的人,吃飽穿暖太簡單了。問題是,稍微厲害一點的技術人,都有自己的野心或志向。 有的,專注技術,成了某個領域的專家,比如Java專家。95%的問題,分分鐘秒殺。
軟體開發的4種模型和4種方法
軟體開發模型: 1.瀑布模型:適合需求明確的軟體開發。 2.演化模型:獲取一組基本需求,快速給出版本,成為原型,用於對軟體需求缺乏準認知的情況。不需要明確的需求 3.螺旋模型:結合瀑布模型和演化模型,綜合兩者優點,並增加風險分析,螺旋模型包括四個方面活動:
32位ARM處理器的幾種工作模式和工作狀態
ARM處理器工作模式一共有 7 種 : USR 模式 正常使用者模式,程式正常執行模式 FIQ模式(Fast Interrupt Request) 處理快速中斷,支援高速資料傳送或通道處理 IRQ