zoukankan      html  css  js  c++  java
  • ARM汇编基础

    1.  user模式不能切换到其他模式,其他特权模式可以切换到user模式。

    2,  I=1,禁止IRQ, F=1,禁止FIQ。芯片启动时默认禁止这两位。

    3.  N位:计算结果为负数时置1;  Z位:计算结果为0时置为1;  

       C位:a.加法进位时置1  b.减法产生借位时置为0;  V位:符号位改变时置1(针对有符号位)

    4.  spsr:对cpsr进行备份, 不能在User 和system模式下使用。

    5.  7类异常源:(1)FIQ(响应速度比IRQ快)  (2)IRQ[!!]  (3)data abort(数据终止)  (4)prefetch abort(指令预取终止)

       (5)software interrupt[!!](例如用户态切换到内核态)  (6)undefined instruction(指令为定义异常)  (7)reset(复位)

    6.  异常处理(自动处理)

      (1)cpsr拷贝到spsr_<mode>

      (2)设置cpsr

        a)切换到ARM状态

        b)进入到响应的异常模式。

        c)禁止相应异常

      (3)保存返回地址到LR_<mode>

      (4)修改PC(在对应的异常向量表中查询)

      返回(手动)

      (1)从SPSR_<mode>恢复CPSR

      (2)从LR_<mode>恢复PC;

    7.  cotex-A 同一类的中断不允许嵌套,FIQ可以嵌套IRQ(保留疑问)。

    8.  伪指令:CPU不能识别,编译时替换成CPU能识别的指令。

       伪操作:指导编译,不生成指令。

    9.  默认状态下,数据处理指令不会影响条件码标志位,可以通过加s来影响。

    9.  MOV R1 ,#0xFF (mov r1 占20位,剩余12位)  立即数的本质是指令中的数。

    10.  任何乘法指令都不支持立即数。

    11.  ASR:算术右移,低位移出,高位补符号位(没有算术左移)

    12.  子函数的参数最好不要超过4个(用寄存器传参数,超过用栈来传参)

    13.  跳转指令的实质是修改PC,标号的实质是地址,b指令跳转不能超过64M。

  • 相关阅读:
    xadmin进行全局配置(修改模块名为中文以及其他自定义的操作步骤)
    xadmin邮箱验证码 标题 EmailVerifyRecord object
    Django源码安装xadmin报错Apps aren't loaded yet.
    python虚拟环境virtualenv下安装MySQL-python(1.2.3)
    Pycharm界面的子窗口不见了,怎么办?
    MySQL-python终于安装成功了
    mysql-python 安装错误: Cannot open include file: 'config-win.h': No such file or directory
    配凑法
    双连不等式
    求参数的取值范围
  • 原文地址:https://www.cnblogs.com/oyjngz101/p/6066426.html
Copyright © 2011-2022 走看看