您的位置:首页 > 其它

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 片上系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm arm处理器