標(biāo)題: ARM一些總結(jié) [打印本頁]

作者: FWW    時間: 2017-3-26 17:28
標(biāo)題: ARM一些總結(jié)
ARM處理器共有37個寄存器:
      1) 31個通用寄存器,包括程序計數(shù)器(PC)。這些寄存器都是32位的;

      2)6個狀態(tài)寄存器。這些寄存器也是32位的,但是只使用了其中的12位。

ARM通用寄存器

          通用寄存器(R0-R15)可分為三類:不分組寄存器R0~R7;分組寄存器R8~R14;程序計數(shù)器PC。

          1)不分組寄存器R0~R7

           不分組寄存器R0~R7在所有處理器模式下,它們每一個都訪問一樣的32位寄存器。它們是真正的通用寄存器,沒有體系結(jié)構(gòu)所隱含的特殊用途。

           2)分組寄存器R8~R14

           分組寄存器R8~R14對應(yīng)的物理寄存器取決于當(dāng)前的處理器模式。若要訪問特定的物理寄存器而不依賴當(dāng)前的處理器模式,則要使用規(guī)定的名字。

          寄存器R8~R12各有兩組物理寄存器:一組為FIQ模式,另一組為除了FIQ以外的所有模式。寄存器R8~R12沒有任何指定的特殊用途,只是在作快速中斷處理時使用。寄存器R13,R14各對應(yīng)6個分組的物理寄存器,1個用于用戶模式和系統(tǒng)模式,其它5個分別用于5種異常模式。寄存器R13通常用做堆棧指針,稱為SP;寄存器R14用作子程序鏈接寄存器,也稱為LR。

          3)程序計數(shù)器PC

           寄存器R15用做程序計數(shù)器(PC)。

ARM程序狀態(tài)寄存器

        在所有處理器模式下都可以訪問當(dāng)前的程序狀態(tài)寄存器CPSR。CPSR包含條件碼標(biāo)志,中斷禁止位,當(dāng)前處理器模式以及其它狀態(tài)和控制信息。每種異常模式都有一個程序狀態(tài)保存寄存器SPSR。當(dāng)異常出現(xiàn)時,SPSR用于保存CPSR的狀態(tài)。

           CPSR和SPSR的格式如表所示:

1)條件碼標(biāo)志:

                N,Z,C,V大多數(shù)指令可以檢測這些條件碼標(biāo)志以決定程序指令如何執(zhí)行。

         2)控制位:

                 最低8位I,F(xiàn),T和M位用做控制位。當(dāng)異常出現(xiàn)時改變控制位。當(dāng)處理器在特權(quán)模式下也可以由軟件改變。

                中斷禁止位:I置1則禁止IRQ中斷;F置1則禁止FIQ中斷。

              T位:T=0指示ARM執(zhí)行;T=1指示Thumb執(zhí)行。在這些體系結(jié)構(gòu)系統(tǒng)中,可自由地使用能在ARM和Thumb狀態(tài)之間切換的指令。

               模式位:M0,M1,M2,M3和M4(M[4:0])是模式位,這些位決定處理器的工作模式,如表所示。
  3)其他位

                               程序狀態(tài)寄存器的其他位保留,用作以后的擴展。



    ARM核工作在用戶模式,R0~R15可用。

        存儲器格式

               ARM體系結(jié)構(gòu)將存儲器看作是從零地址開始的字節(jié)的線性組合。字節(jié)零到字節(jié)三放置第一個字(WORD),字節(jié)四到字節(jié)七存儲第二個字,以此類推。

              ARM體系結(jié)構(gòu)可以用兩種方法存儲字數(shù)據(jù),分別稱為大端格式和小端格式。

       大端格式

             在這種格式中,字數(shù)據(jù)的高位字節(jié)存儲在低地址中,而字數(shù)據(jù)的低位字節(jié)則存放在高地址中

       小端格式

             在這種格式中,字數(shù)據(jù)的高位字節(jié)存儲在高地址中,而字數(shù)據(jù)的低位字節(jié)則存放在低地址中







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1