<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏

          1、ARM工作模式

          本文引用地址:http://www.ex-cimer.com/article/201611/317795.htm

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

          △:第一種為ARM狀態(tài),此時處理器執(zhí)行32位的的字對齊的ARM指令。

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

          當ARM微處理器執(zhí)行32位的ARM指令集時,工作在ARM狀態(tài);

          當ARM微處理器執(zhí)行16位的Thumb指令集時,工作在Thumb狀態(tài)。

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

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

          1)存儲器格式

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

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

          放置第二個存取器的子數(shù)據(jù),依次排序。

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

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

          △:大端格式:字數(shù)據(jù)的高字節(jié)存儲在低地址中,而字數(shù)據(jù)的低字節(jié)則存放在高地址中。

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

          2)工作模式

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

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

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

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

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

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

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

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

          注意:

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

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

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

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

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

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




          1)通用寄存器

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

          R0-R7

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

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

          △:分組寄存器:

          R8-R14

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

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

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

          △:程序計數(shù)器

          R15(PC)

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

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

          △:狀態(tài)寄存器

          CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq

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

          還是直接上圖,這個是跟ARM狀態(tài)相比較的:



          4、CPSR/SPSR

          一張圖片搞定:



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();