ARM的寄存器及异常处理机制

arm的寄存器:
    普通:r0-r15
        r0-r12   //存储任何数据
        r13(sp)  //栈指针寄存器(私有寄存器),当模式切换、程序跳转时,可以存储通用寄存器数值到sp指向的内存地址
        r14(lr)//链接寄存器()  当程序跳转时,用来记录程序返回地址
        r15(pc)//程序计数器    读操作:arm状态读取得是当前正在执行的指令地址+8
                                 写操作:cpu会自动跳转到写入地址处执行代码
                                 
    特殊:cpsr(程序当前状态寄存器)
            N 31位   1表示结果为负  0表示结果为正
            Z 30位   1表示结果为0   0表示结果非0 
            C 29位   加法 1表示存在进位  0表示没有进位  减法:1表示没有借位 0表示有借位
            V 28位   溢出表示:1结果溢出  0没有溢出
            运算表示位只能cpu根据运算结果自己修改,程序员不能写
            E 9位    0小端   1大端
            I 7位    中断控制位       1不接收中断  0接收中断
            F 6位    快速中断控制位   1不接收快速中断  0接收快速中断
            M 4-0位  工作模式表示域
                      when '10000'  result = usr;  // User mode
                      when '10001'  result = fiq;  // FIQ mode
                      when '10010'  result = irq;  // IRQ mode
                      when '10011'  result = svc;  // Supervisor mode
                      when '10110'  result = mon;  // Monitor mode
                      when '10111'  result = abt;  // Abort mode
                      when '11010'  result = hyp;  // Hyp mode
                      when '11011'  result = und;  // Undefined mode
                      when '11111'  result = usr;  // System mode uses User mode registers
            
            修改模式的方法:
                1.在管理模式,程序员自主修改
                2.在异常发生时,cpu自动修改
          spsr(保存的程序状态寄存器)保存存cpsr数值
          
arm的异常处理机制:
    异常发生时,cpu会自动跳转到异常向量表固定位置执行代码
    异常向量表:arm的异常事件处理方法集合
    异常向量表基地址:0x00000000  0xffff0000   armv7可以设置在任意位置
    arm一共分7中异常
    0x0        reset异常
    0x4        Undefined Instruction(未定义)
    0x8        Supervisor Call(svc异常,软件中断)
    0xc        Prefetch Abort  (预取中止)
    0x10    Data Abort   (数据中止)
    0x14    not used
    0x18    irq 
    0x1c    fiq

当程序执行发生异常时,会自动跳转到异常向量表的固定位置处执行代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值