31 | 30 | 29 | 28 | 27 | ~ | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
N | Z | C | V | 保留 | I | F | T | M4 | M3 | M2 | M1 | M0 | |||||
N | Negative/Less Than | I | IRQ disable | ||||||||||||||
Z | Zero | F | FIQ disable | ||||||||||||||
C | Carry/Borrow/Extend | T | State bit | ||||||||||||||
V | Overflow | M0~4 | Mode bits |
1、條件碼標志
N、Z、C、V均為條件碼標志位。它們的內容可被算術或邏輯運算的結果所改變,并且可以決定某條指令是否被執行。條件碼標志各位的具體含義如下表所示:
標志位 | 含 義 |
N | 當用兩個補碼表示的帶符號數進行運算時,N=1表示運算的結果為負數;N=0表示運算的結果為正數或零 |
Z | Z=1表示運算的結果為零,Z=0表示運算的結果非零。 |
C | 可以有4種方法設置C的值: |
-加法運算(包括CMP):當運算結果產生了進位時(無符號數溢出),C=1,否則C=0。 | |
-減法運算(包括CMP):當運算時產生了借位時(無符號數溢出),C=0,否則C=1。 | |
-對于包含移位操作的非加/減運算指令,C為移出值的最后一位。 | |
-對于其它的非加/減運算指令,C的值通常不會改變。 | |
V | 可以有2種方法設置V的值: |
-對于加減法運算指令,當操作數和運算結果為二進制的補碼表示的帶符號數時,V=1表示符號位溢出 | |
-對于其它的非加/減運算指令,V的值通常不會改變。 | |
Q | 在ARM V5及以上版本的E系列處理器中,用Q標志位指示增強的DSP運算指令是否發生了溢出。在其它版本的處理器中,Q標志位無定義 |
在ARM狀態下,絕大多數的指令都是有條件執行的;在THUMB狀態下,僅有分支指令是條件執行的。
2 控制位
CPSR的低8位(包括I、F、T和M[4:0])稱為控制位,當發生異常時這些位可以被改變。如果處理器運行于特權模式時,這些位也可以由程序修改。
·中斷禁止位I、F:置1時,禁止IRQ中斷和FIQ中斷。
·T標志位:該位反映處理器的運行狀態。當該位為1時,程序運行于THUMB狀態,否則運行于ARM狀態。該信號反映在外部引腳TBIT上。在程序中不得修改CPSR中的TBIT位,否則處理器工作狀態不能確定。
·運行模式位M[4:0]:這幾位是模式位,這些位決定了處理器的運行模式。具體含義如下表所示:
·保留位:CPSR中的其余位為保留位,當改變CPSR中的條件碼標志位或者控制位時,保留位不要改變,在程序中也不要用保留位存儲數據。保留位將用于ARM版本的擴展。
M[4:0] | 處理器模式 | ARM模式可訪問的寄存器 | THUMB模式可訪問的寄存器 |
0b10000 | 用戶模式 | PC,CPSR,R0~R14 | PC,CPSR,R0~R7,LR,SP |
0b10001 | FIQ模式 | PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R0~R7 | PC,CPSR,SPSR_fiq,LR_fiq,SP_fiq,R0~R7 |
0b10010 | IRQ模式 | PC,CPSR,SPSR_irq,R14_irq~R13_irq,R0~R12 | PC,CPSR,SPSR_irq,LR_irq,SP_irq,R0~R7 |
0b10011 | 管理模式 | PC,CPSR,SPSR_svc,R14_svc~R13_svc,R0~R12 | PC,CPSR,SPSR_svc,LR_svc,SP_svc,R0~R7 |
0b10111 | 中止模式 | PC,CPSR,SPSR_abt,R14_abt~R13_abt,R0~R12 | PC,CPSR,SPSR_abt,LR_abt,SP_abt,R0~R7 |
0b11011 | 未定義模式 | PC,CPSR,SPSR_und,R14_und~R13_und,R0~R12 | PC,CPSR,SPSR_und,LR_und,SP_und,R0~R7 |
0b11111 | 系統模式 | PC,CPSR,R0~R14 | PC,CPSR,LR,SP,R0~R74 |
上一篇:ARM匯編中LDR與LTORG的關系
下一篇:ARM反匯編學習
推薦閱讀
史海拾趣
轉折:1985年,Hartmann Codier GmbH迎來了一個重要的轉折點——被瑞士公司Phoenix Mecano AG收購。這一收購不僅為公司帶來了雄厚的資金支持,更為其開放了國際市場,引入了海外分銷渠道。
成果:借助Phoenix Mecano AG的全球網絡,Hartmann Codier GmbH迅速將產品推向了全球40多個國家,極大地提升了品牌知名度和市場份額。同時,公司也加強了與國際客戶的合作,共同推動電子行業的發展。
核心:Hartmann Codier GmbH一直將技術創新視為企業發展的核心動力。公司擁有一支專業的研發團隊,致力于開關技術的研發與創新。通過不斷的技術突破和產品升級,公司成功推出了一系列具有自主知識產權的高性能開關產品。
影響:這些創新產品不僅滿足了市場對高品質、高可靠性開關的需求,還推動了整個電子行業的技術進步和產業升級。Hartmann Codier GmbH因此成為了行業內的技術引領者之一。
2020年新冠疫情期間,愛晟電子積極響應政府號召,全力支持抗疫工作。公司不僅向抗疫一線捐贈了防疫物資,還組織員工參與志愿服務。同時,公司還利用自身的技術優勢,研發出適用于醫療設備的NTC熱敏電阻,為抗擊疫情提供了有力支持。這些行動彰顯了愛晟電子的社會責任感和擔當精神。
面對日益激烈的市場競爭和不斷變化的市場需求,愛晟電子始終堅持以創新驅動發展。公司不斷投入研發資金,加強研發團隊的建設,推動技術的不斷進步和創新。同時,公司還積極探索新的應用場景和市場領域,為未來的發展奠定了堅實的基礎。這些努力使得愛晟電子在電子行業中保持了持續的發展勢頭和競爭力。
為了進一步擴大市場份額,愛晟電子制定了國際化發展戰略。公司積極參加國際電子展會和論壇,與國際同行進行交流合作。同時,公司還加大了對海外市場的拓展力度,產品出口到歐美、東南亞等多個國家和地區。這些舉措使得愛晟電子在國際市場上獲得了更多的認可和機會。
隨著環保意識的日益增強,AIM積極響應國家的環保政策,將綠色生產理念融入公司的日常運營中。公司投入大量資金引進環保設備和技術,優化生產流程,減少污染物排放。同時,AIM還推出了一系列環保型電子產品,滿足了消費者對綠色產品的需求。
我的開發板有做好的BSP包,我想屏蔽去掉一些驅動,寫上自己的驅動,然后燒到板子里去,怎么做自己的鏡像呢? 新手,求指教!!!! 我的驅動也寫好了,屏蔽原有的驅動是不是直接刪掉DRIVERS下的驅動文件就可以了呢???… 查看全部問答∨ |
我寫一個ndis驅動,需要調用ndis.h中的EXPORT NDIS_STATUS ( IN NDIS_HANDLE MiniporNdisMCmRegisterAddressFamilytAdapterHandle, IN   ...… 查看全部問答∨ |
當我們要對一個數同時做取模和取商的操作時在 KEIL C 中這樣表示 unsigned int i,j,k; i=k%15; j=k/15; 復制代碼 然后察看KEIL C生成的匯編碼,發現它調用了兩次除法子程序,實際上應該是只需要調用一次就可以的啊。 查KEIL C 的庫函數好像也沒 ...… 查看全部問答∨ |
天津xilinx fpga競賽題目已經出了,麻煩大家幫分析一下 本帖最后由 paulhyde 于 2014-9-15 09:44 編輯 高教社&xilinx 競賽 天津賽區是星期六開始 ,比賽時間是早8點到下午4點,時間很短。要求自帶VGA顯示器,估計就是VGA的題了。麻煩大家幫分析一下,大概題目會是什么樣。有什么話就說 ...… 查看全部問答∨ |
請各位比較熟悉DSP的人給點指導: 我建好的工程在CCS3.3中編譯時報錯“ Cannot open source file \'D:\\TempData\\Softs\\include.if\'”,工程新建在CCStudio_v3.3\\MyProjects\\下,主要代碼是例程,無語法錯 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 有獎直播 | 德州儀器基于 Arm 的 AM62 處理器簡介
- 最后一周:免費獲取Pasternack《RF產品選型指南》2018 印刷版!
- 有獎直播|如何借助Mentor Xpedition AMS對汽車CAN總線進行仿真優化分析?
- 如何用3個關鍵步驟,來確保下一代設計安全性,深入解讀嵌入式設備DeepCover加密控制器,看視頻答題贏好禮!
- 好書共讀:《硬件設計指南:從器件認知到手機基帶設計》
- 【預約有禮】全球測量圈大咖直播:驗證5G核心網,確保最佳性能
- 中秋“國宴“ :拍攝板卡上的國產元器件,抽開心小禮品
- Keysight教你如何提高測試精度,答對問題還有禮品相送,速速參與!
- TI 培訓推薦有禮活動
- 【分享成長,10月有獎】EEWORLD優秀主題/回復第15期活動開始啦!!!