新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM匯編指令ARM工作模式、寄存器

        ARM匯編指令ARM工作模式、寄存器

        作者: 時間:2016-11-09 來源:網絡 收藏

        1、ARM工作模式

        本文引用地址:http://www.104case.com/article/201611/317795.htm

        從編程的角度來看,ARM微處理器的工作狀態一般有兩種,并可在兩種工作狀態之間進行切換:

        △:第一種為ARM狀態,此時處理器執行32位的的字對齊的ARM指令。

        △:第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。

        當ARM微處理器執行32位的ARM指令集時,工作在ARM狀態;

        當ARM微處理器執行16位的Thumb指令集時,工作在Thumb狀態。

        在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態

        的轉變并不影響處理器的工作模式和相應寄存器中的內容。

        1)存儲器格式

        ARM體系結構將存儲器看作是從零地址開始的字節的線性組合。

        從零字節到三字節地址放置地一個存儲的字(32位)數據,從第四個字節到第七個字節

        放置第二個存取器的子數據,依次排序。

        作為32位的微處理器,ARM體系結構所支持的最大尋址空間為4GB。

        ARM體系結構可以用兩種方法存儲字數據,稱之為大端格式和小端格式。

        △:大端格式:字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中。

        △:小端格式:與大端格式正好相反。

        2)工作模式

        ARM微處理器支持7種工作模式,分別為:

        a、用戶模式(usr)用于正常執行程序

        b、快速中斷模式(fiq)用于高速數據傳輸

        c、外部中斷模式(irq)用于通常的中斷處理

        d、管理模式(svc)操作系統使用的保護模式

        e、數據訪問終止模式(abt)當數據或者指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。

        f、系統模式(sys)運行具有特權的操作系統任務

        g、未定義指令中止模式(und)當未定義的指令執行時進入該模式,可用于支持硬件

        注意:

        ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或者異常處理改變。

        應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被3保護的系統資源是不能被訪問的。

        除用戶模式外,其余的6種模式稱為非用戶模式或者特權模式(Privileged Modes);

        其中出去用戶模式和系統模式以外以外的5種又稱為異常模式(Exception Modes),常用語處理中斷或者異常,以及要訪問受保護的系統資源等情況。

        2、ARM寄存器(基于ARM狀態)

        先貼張圖片,一看就明白了:




        1)通用寄存器

        △:不分組寄存器(The unbanked registers)

        R0-R7

        這意味著在所有處理模式下,訪問的都是同一個物理寄存器。未分組寄存器沒有被系統用于特別的用途,

        任何可采用通用寄存器的場合都可以使用為分組寄存器。

        △:分組寄存器:

        R8-R14

        對于R8-R12:FIQ模式分組寄存器R8-R12以及FIQ以外的分組寄存器R8-R12

        對于R13-R14:寄存器R13通常用于堆棧指針SP

        寄存器R14用作子程序連接寄存器(Link Register-LR),也成為LR,指向函數的返回地址。

        △:程序計數器

        R15(PC)

        寄存器R15也被用作程序計數器,也成為PC。其值等于當前正在執行的指令的地址+8。

        因為在取址和執行之間多了一個譯碼的階段(這個我也不是很懂,就是知道要加兩個字)~~

        △:狀態寄存器

        CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq

        3、ARM寄存器(基于Thumb狀態)

        還是直接上圖,這個是跟ARM狀態相比較的:



        4、CPSR/SPSR

        一張圖片搞定:



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 邵阳县| 丹东市| 当阳市| 阿拉善左旗| 长海县| 七台河市| 淳安县| 抚顺县| 神池县| 中卫市| 平利县| 蚌埠市| 法库县| 合阳县| 营口市| 柘城县| 安西县| 田东县| 成都市| 略阳县| 清丰县| 奉节县| 金堂县| 石首市| 祁门县| 六安市| 岳普湖县| 长宁县| 龙门县| 湖北省| 同仁县| 德保县| 应用必备| 汝城县| 彭阳县| 舞钢市| 岚皋县| 石屏县| 扶沟县| 阳新县| 沁源县|