ARM编程模型重点.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM编程模型重点

ARM处理器的编程模型 大纲 ARM处理器的工作状态 从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: ? 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令。 ? 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。 当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。 在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。 Thumb指令集 32位ARM指令集的子集,按16位指令重新编码。 大纲 ARM体系的存储器模式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。 ARM体系的存储器模式 大端格式: 高字节存储在低地址中,低字节则存放在高地址中. 0 ARM体系的存储器模式 小端格式: 高字节存储在高地址中,低字节则存放在低地址中. 0 大纲 ARM体系的数据类型 字对齐: 字需要4字节对齐,地址的低两位为00 半字需要2字节对齐,地址的最低位为0 类型 宽度 无符号取值 有符号取值 字 32位 0-4294967295 -2147483648-2147483647 半字 16位 0-65535 -32768-32767 字节 8位 大纲 ARM体系的寄存器组织 37寄存器: 31个通用32位寄存器(包括程序计数器PC) 未分组寄器R0-R7: 指向同一个物理寄存器 分组寄存器R8-R14: R13_mode、R14_mode Mode:usr、fiq、irq、svc、abt、und。 程序计数器PC(R15) 6个状态寄存器 R0到R15 可以直接访问 R0到R14 是通用寄存器 R13: 堆栈指针(sp) (通常) 每种处理器模式都有单独的堆栈,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间。 Thumb中,某些指令强制性的要求使用R13作为堆栈指针 ARM体系的寄存器组织 R14:子程序链接寄存器(Subroutine Link Register ,LR) 当执行BL子程序调用指令时,R14←R15(程序计数器PC)。 与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。 其他情况下,R14用作通用寄存器。 ARM体系的寄存器组织 R15:程序计数器(PC) R15虽然也可用作通用寄存器,但一般不这么使用,否则程序的执行结果可能未知。 当向R15中写入一个地址值时,程序将跳转到该地址执行。 在ARM状态下,位[1:0]为00;在Thumb状态下,位[0]为0 。 由于在ARM状态下指令总是是字对齐的,所以R15值的第0位和第1位总为0,PC[31:2]用于保存地址。 由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。 ARM体系的寄存器组织 ARM体系的寄存器组织 CPSR Current Program Status Register,当前程序状态寄存器 CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 5个SPSRs--SavedProgram Status Register程序状态保存寄存器 当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。 由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。 ARM体系的寄存器组织 N, Z, C and V 条件码标志 可以在处理器中作为数学和逻辑操作改变 可以被所有的指令测试,以决定指令是否被执行 N : Negative Z : Zero C : Carry V : oVerflow I and F 位是中断禁止位 M0, M1, M2, M3 and M4 位是模式位 ARM体系的寄存器组织 标志位 含 义 N 当用两个补码表示的带符号数进行运算时,N=1 表示运算的结果为负数;N=

文档评论(0)

麻将 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档