1-ARM处理器_大小端
2017-02-03 15:08
204 查看
ARM
ARM支持的数据格式:byte:8bit char
hw:16bit short
word:32bit int
dw:64bit long long
* ARM(32bit) thumb(16bit)
* ARM处理器工作模式:
user:唯一的非特权模式,只能操作普通的寄存器
system:特权模式,使用和user一样的寄存器,PC
FIQ:快速中断
IRQ:普通中断
SVC(Supervisor):复位,软中断进入的模式
abort:取指(到内存中取到指令)异常
undef:指令未定义时会进入这个模式
monitor:监控
* 除了system和user的模式都叫做异常模式
* r13 sp 堆栈指针(备份普通寄存器内容)
r14 lr 链接寄存器(备份PC)
r15 pc 程序计数器(指向下一条执行的指令)
一个函数的跳转:
将pc备份到lr
压栈,保存栈指针到sp
执行新的函数
执行完毕
从栈里恢复数据到寄存器
将lr恢复到pc
ARM核里有37个寄存器
system+user公用17个寄存器
FIQ独立:r8 - r14 SPSR(用来备份cpsr) 8个
IRQ独立的:r13、 r14、 spsr
SVC独立的:r13、 r14、 spsr
undef独立的:r13、 r14、 spsr
abort独立的:r13、 r14、 spsr
cpsr
31 n位 负数位
30 z 0
29 c 进位位
28 v 溢出
24 j thumbee java字节码
19-16 GE 大于或者等于
15-10 if then
9 e 大小端
7 i 禁止IRQ
6 f 禁止FIQ
5 T 进入thumb状态
* 异常处理:4大步3小步
1.拷贝cpsr到指定模式的spsr
2.设置cpsr
a.改变状态为ARM状态
b.改变处理器模式
c.根据需要禁止中断
3.保存pc到指定模式的lr
4.设置pc为响应异常
从异常返回:
从spsr恢复到cpsr
从lr恢复到pc
B指令 简单的跳转 范围+—32M
BL带链接的跳转指令
跳转之前将pc保存到lr 跳转之后将lr恢复到pc
MCU 微控制器
SOC 片上系统
相关文章推荐
- #新闻拍一拍# IBM 招聘广告要求应聘者具备至少 12 年 K8S 使用经验
- vivi下重新调整分区
- ARM Linux系统启动
- Linux及ARM Linux程序开发笔记(零基础入门篇)
- 零基础入门篇之Linux及Arm-Linux程序开发笔记
- iOS逆向工程之Hopper中的ARM指令详解
- Mac下定时任务清理内存
- 我的 ARM+Linux 学习路线
- 64位Ubuntu 14.04上使用musleabi最小化交叉编译Android版PHP7
- 关于ARM启动的一篇文章
- ARM 的堆栈初始化详解
- ARM条件码与CPSR标志位的关系
- 加载/存储指令
- 关于ARM 汇编的一些疑问
- ARM汇编伪指令介绍
- linux的防火墙及arm与虚拟机共享
- 编译单个驱动的Makefile文件。
- ARM Linux设备树的应用例子1
- ARM Linux系统调用的原理
- Android LKM Rootkit,查找sys_call_table