arm学习小知识点汇总

来源:互联网 发布:linux的date命令 编辑:程序博客网 时间:2024/06/05 14:19

有什么错误希望大家指出来,一起学习;


1.详细说明arm有哪几种工作模式,并说明什么情况下进入相应的工作模式运行。
答:
 arm 一共有 7 种工作模式:
 user(用户):
  Mode number :0b10000
  正常程序执行的模式;不能切换到其它模式
 system(系统):
  Mode number :0b11111
  属于特权模式;特权模式间可通过寄存器CPSR切换模式
  运行具有特权操作的系统任务(基于ARMV4架构及以上)
 supervisor(<svc> 管理):
  Mode number :0b10011
  属于特权模式,也属于异常模式;特权模式间可通过寄存器CPSR切换模式
  一种对当前工作系统的保护模式
 abort(中止):
  Mode number :0b10111
  属于特权模式,也属于异常模式;特权模式间可通过寄存器CPSR切换模式
  数据中止:段错误的最低层
  指令预取中止:是取到非法指令时,在执行阶段发现指令被标记,执行指令中止
 undefined(未定义):
  Mode number :0b11011
  属于特权模式,也属于异常模式;特权模式间可通过寄存器CPSR切换模式
  支持硬件协处理器的软件仿真
 interrupt(中断):
  Mode number :0b10010
  属于特权模式,也属于异常模式;特权模式间可通过寄存器CPSR切换模式
  被使用于各种中断相应
 fast interrupt(快速中断):
  Mode number :0b10001
  属于特权模式,也属于异常模式;特权模式间可通过寄存器CPSR切换模式
  支持告诉数据传输程序或告诉通道程序的执行;
 
2.简述arm指令和Thumb指令的区别。
答:
 (1).arm指令都是32位,Thumb指令都是16位的
 (2).arm指令功能强大,绝大多数的指令支持条件执行,eg:mcr;Thumb指令除了跳转指令支持条件执行,其它都不支持
 (3).arm指令能访问某些特殊寄存器(cpsr);Thumb指令不能访问

3.简述寄存器R13,R14,R15的用途。
答:
 R13(sp):堆栈指针寄存器;用于栈相关操作
 R14(lr):连接寄存器;当执行bl子程序调用指令时,lr中得到pc的备份
 R15(pc):程序计数器;用于控制程序中指令的执行顺序,其指向下下条指令

原创粉丝点击