ARM架構與體系學習(三)——ARM處理器狀態

來源:互聯網
上載者:User

ARM7有兩套指令系統,分別為ARM指令集和Thumb指令集。

ARM指令集為32位長,具有最完整的功能;Thumb指令集為16位長度,能實現ARM指令集的大部分功能。

Thumb指令集具有極高的代碼密度(平均縮減30%的代碼量)。

ARM處理器有兩個處理器狀態與這2套指令集分別對應。

以“當前程式狀態寄存器CPSR”中的控制位T反映處理器正在操作的狀態,即哪種指令集正在執行。T=0時,處理器處於ARM狀態,執行ARM指令。T=1時,處理器處於Thumb狀態,執行Thumb指令。其中處理器在系統上電時預設為ARM狀態。

無論處理器處於何種狀態,ARM指令集與Thumb指令集不同同時混合使用。

BX指令可以實現將ARM核心的操作狀態在ARM和Thumb之間進行切換。

PS:BX用法。

BX:帶狀態切換的跳轉指令,跳轉到Rm指定的地址執行程式,若Rm的位[0]為1,則跳轉時自動將CPSR的標誌T置位,即把目標地址的代碼解釋為Thumb狀態碼;若Rm的位[0]為0,則跳轉時自動將CPSR中的標誌T複位,即把目標地址的代碼解釋為ARM代碼,指令格式如下,

BX{cond} Rm

為了讓使用者更好地控制碼量,才會設計了這兩套指令系統。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.