寄存器

  通用寄存器可以保存数据和地址。用字母r为前缀加该寄存器的序号来标识,所有的通用寄存器均为32位

  最多可以有18个活动寄存器;16个数据寄存器(r0-r15)和2个处理器状态寄存器。

  ARM处理器为特殊的任务或专门的功能制定了三个寄存器:r13,r14,r15

      r13用作堆栈指针sp保存当前处理器模式的堆栈的栈顶;

     r14又被称为链接寄存器(lr)保存调用子程序的返回地址;

     r15程序计数器,内容是处理器要取的下一条指令地址。

   r13,r14也可运作通用寄存器,因为在处理器模式改变时,这些寄存器是分组备份的,但是若处理器运行操作系统时将十分危险,操作系统通常认为r13指向一个有效的栈顶结构。在ARM结构下r0~r13是正交的任何指令可以使用r0就可以使用其他寄存器。但有些指令以特殊的方式来对待r14,r15

程序状态寄存器csprspsr分别是当前的和备份的程序状态寄存器

    cspr分为4个8位区域:标志域、状态域、扩展域、控制域。扩展域和状态域保留。控制域包含处理器模式、状态和中断屏蔽位;标志域包含条件标志位

   7种处理器模式:6种特权模式终止(abort)(10111)中断(iterrupt request)快速中断(fast interrupt request)管理(supervisor)系统(system)未定义(undefined);和一种非特权模式用户模式(user)

当处理器访问存储器失败时,进入终止模式;中断模式和快速中断模式分别对ARM处理器的两种不同级别的中断做出响应;处理器复位后进入管理模式,操作系统内核也通常处于这种模式;系统模式是一种特殊的用户模式,允许对cpsr的完全读写访问;当处理器遇到没有定义的指令或处理器不支持该指令时,进入未定义模式,用户模式运行。

出用户模式外,每一种处理器模式都可以通过改写cpsr中的模式位来改变,除系统模式外,所有处理器模式都有一组各自的分组寄存器,是16个主要寄存器的子集。每个分组寄存器与一个用户模式的寄存器相对应。如果改变处理器的模式,新模式的一个分组寄存器将取代原来模式的分组寄存器

     终止     快速中断     中断             管理              系统           未定义         用户

     abt          fip               irp                svc                sys              und              usr

 10111     10001      10010            10011            11111          11011        10000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值