- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM程式设计
ARM程式設計 ARM微處理器指令優點 小晶片的面積低功耗 ARM架構還採用了一些特別的技術,在性能的前提下儘量縮小晶片的面積,並降低功耗。 條件式指令 所有的指令都可根據前面的執行結果決定是否被執行,從而提高指令的執行效率。 連續存取資料 可用載入/存儲指令連續傳輸資料,以提高資料的傳輸效率。 同時完成邏輯處理和移位元 可在一條資料處理指令中同時完成邏輯處理和移位處理。 自動增減迴圈 在迴圈處理中使用位址的自動增減來提高執行效率。 ARM微處理器的指令 ARM兩種指令集 ARM指令 為32位元的長度, Thumb指令 為16位元長度。 Thumb指令集為ARM指令集的功能子集,但與等價的ARM程式碼相比較,可節省30%~40%以上的存儲空間。 ARM處理器模式 ARM架構支援7種處理器模式。 模式改變 在軟體控制下可以改變模式 外部中斷或例外處理也可以引起模式發生改變。 大多數應用程式在使用者模式下執行。 當處理器工作在使用者模式時,正在執行的程式不能存取某些被保護的系統資源,也不能改變模式,除非例外(exception)發生。 ARM支援的7種工作模式 ARM微處理器的暫存器結構 ARM處理器共有37個暫存器,被分為若干個組(BANK),這些暫存器包括: 31個通用暫存器。 包括程式計數器(PC指標)。 6個程式狀態暫存器 用以標識CPU的工作狀態及程式的執行狀態,均為32位元,目前只使用了其中的一部分。 ARM處理器有7種不同的處理器模式 在每一種處理器模式下均有一組相應的暫存器與之對應。 ARM暫存器 1)不分組暫存器R0~R7 R0~R7是不分組暫存器。這意味著在所有處理器模式下,它們每一個都存取一樣的32位元暫存器。它們是真正的通用暫存器,沒有架構所隱含的特殊用途。 2)分組暫存器R8~R14 R8~R14是分組暫存器。它們每一個存取的實體暫存器取決於當前的處理器模式。若要存取特定的實體暫存器而不依賴當前的處理器模式,則要使用規定的各字。 暫存器R8~R12各有兩組實體暫存器:一組為FIQ模式,另一組為除了FIQ以外的所有模式。暫存器R8~R12沒有任何指定的特殊用途。 只是使用R8~R14來簡單地處理中斷。暫存器R13,R14各有6個分組的實體暫存器。1個用於使用者模式和系統模式,其他5個分別用於5種例外模式。 暫存器R13通常用做堆疊指標,稱為SP( Stack Pointer),每種例外模式都有自己的R13。 暫存器R14用作副程式鏈結暫存器,也稱為LR(。 3) 程式計數器R15 暫存器R15用做程式計數器 (PC)。 ARM暫存器 程式狀態暫存器(Program Status Register ) 有一個Current Program Status Register (CPSR) 在所有處理器模式下都可以存取當前的程式狀態暫存器CPSR。 CPSR包含條件碼旗標,中斷禁止位元,當前處理器模式以及其他狀態和控制資訊。 有五個Saved Program Status Registers (SPSRs) 每種例外模式都有一個程式狀態保存暫存器SPSR。 SPSR用於保留CPSR的狀態。 程式狀態暫存器 條件碼旗標 : N,Z,C,V 大多數指令可以測試這些條件碼旗標以決定程式指令如何執行 控制位元 : 最低8位元 I,F,T和M位元用做控制位元。當例外出現時改變控制位元。當處理器在特權模式下也可以由軟體改變。 中斷禁止位元:I 置1則禁止IRQ中斷。F置1則禁止FIQ中斷。 T位元: T=0 指示ARM執行。T=1指示Thumb執行。在這些架構系統中,可自由地使用能在ARM和Thumb狀態之間切換的指令。 模式位元: M0, M1, M2, M3和M4 (M[4:0]) 是模式位元.這些位元決定處理器的工作模式。 PSR Mode位元與可使用暫存器 ARM和Thumb之間狀態的切換 ARM處理器可在兩種工作狀態之間切換。 在Thumb狀態下,程式計數器PC使用位元1選擇另一個半字。 ARM和Thumb之間狀態的切換不影響處理器的模式或暫存器的內容。 進入Thumb狀態。當運算元暫存器的狀態位元0為1時,執行BX指令進入Thumb狀態。 如果處理器在Thumb狀態進入例外,則當例外處理(IRQ,FIQ,Undef,Abort和SWI)返回時,自動切換到Thumb狀態。 當運算元暫存器的狀態位元0為0時,執行BX指令進入ARM狀態。 處理器進行例外處理(IRQ,FIQ,Undef,Abort和SWI),從例外向量位址開始執行也可以進入ARM狀態。 Thumb指令及應用 Thumb指令集是ARM指令集的一個子集,允許指令編碼為16位元的長度。 Thumb指令集在保留32程式碼優勢的同時,大大的節省了系統的存儲空間。
您可能关注的文档
- 2011全国松香年会主题报告.ppt
- P2P技术相关的信息安全问题研究.ppt
- X总公司发展战略建议书.ppt
- “组织市场和购买行为分析”重点回顾.ppt
- Pascal语言程序设计.ppt
- “优秀科技辅导员” 评选.ppt
- “海棠湾国际养生社区”研究报告.ppt
- 中国古代史主干知识复习建议.ppt
- 万向传动装置的构造与检修.ppt
- 中考数学专题探究-应用性问题.ppt
- 在线教育行业学员流失原因剖析:2025年教学效果评估与反馈报告.docx
- 合规科技在2025年企业跨境业务中的合规审计与合规报告报告.docx
- 基于用户体验的2025年共享民宿项目服务质量优化评估报告.docx
- 2025年智能材料自修复结构在智慧城市灾害预警中的应用创新报告.docx
- 2025年汽车内饰环保材料行业技术创新与产业升级报告.docx
- 考点解析北师大版8年级数学上册期中试卷(典优)附答案详解.docx
- 考点解析北师大版8年级数学上册期中试卷含答案详解(突破训练).docx
- 医疗大数据在临床决策支持系统中患者体验与满意度提升策略研究报告.docx
- 考点解析北师大版8年级数学上册期中试卷含答案详解(突破训练).docx
- 考点解析北师大版8年级数学上册期中试卷含答案详解(突破训练).docx
文档评论(0)