ARM架构基础知识详解

5星 · 超过95%的资源 需积分: 5 1 下载量 64 浏览量 更新于2024-08-05 9 收藏 18KB DOC 举报
"本文主要梳理了ARM架构的关键知识点,包括状态寄存器、指令系统、寻址方式、指令集、协处理器、数据类型、存储模式、虚拟地址管理和参数传递等核心概念。" ARM架构是广泛使用的微处理器架构,其特点包括高效能和低功耗。以下是对这些知识点的详细解释: 1. **控制位与状态寄存器**: - CPSR(Current Program Status Register)是ARM处理器中的关键寄存器,其中I、F、T和M[4:0]是低8位的控制位,分别用于中断禁止、浮点运算禁止、指令集选择(ARM或Thumb)和处理器模式等。 2. **指令访问与内存操作**: - ARM指令如MRS(Move from Status Register to Register)和MSR(Move to Status Register)用于访问和修改状态寄存器。 - STR(Store Register)和LDR(Load Register)是基本的内存访问指令,用于数据的存储和加载。 3. **算术运算与寻址方式**: - "ADDR1,R2,R3,LSL#2" 是一种算术运算,表示将R2加上R3左移2位的结果存储到R1中。 - STMIB(Stack Memory Block Post Increment)指令用于满递增堆栈操作,而ADR和LDR伪指令分别用于小范围和大范围地址读取。 4. **指令集与对齐**: - ARM指令集分为ARM指令集和Thumb指令集,前者为32位,后者为16位。存储时,ARM指令需4字节对齐,Thumb指令需2字节对齐。 5. **协处理器**: - ARM最多支持16个协处理器,用于扩展处理器功能,如浮点运算、内存管理等。 6. **数据类型**: - ARM处理器处理的数据类型包括字节(8位)、半字(16位)和字(32位)。 7. **伪操作与指令执行**: - "GBLAc;cSETA8_66" 是汇编语言中的伪操作,用于设置变量c的值。 - 示例中的LDR R0,[R1,#8]!指令,会将R1地址加8后的内存内容加载到R0,并将R1自增8。 8. **存储模式与字节序**: - 在大端模式下,32位数0x12345678存储时,1000H单元内容为0x12。 9. **虚拟地址管理**: - ARM使用页式虚拟存储管理技术,一级描述符保存二级页表的基地址。 - 粗粒度和细粒度二级页表支持不同大小的页映射,如大页、小页和极小页。 10. **参数传递**: - 在ARM的Application Binary Interface (ABI)即ATPCS中,参数通常通过r0-r3寄存器或数据栈传递,采用递减满栈(FD)的方式。 理解这些基本概念是掌握ARM架构编程和系统设计的基础,对于嵌入式系统开发和硬件接口设计至关重要。