一、概念:
指令:就是一条汇编指令
指令集:很多条汇编指令的集合
架构:随着ARM产品的迭代升级,对ARM指令集的命名
armv1~armv6已经淘汰
armv7~armv8市面正在使用的
armv9:2021年刚上市
内核:根据不同的arm版本号,设计出不同的内核
soc:片上系统
arm公司不生产芯片,只生产内核,将内核卖给对应的厂商,厂商添加字节需要的一些外设,最终形成soc
二、交叉编译工具链
Ubuntu是x86架构的,板子是arm架构的,交叉编译工具链是将x86架构的程序生成支持arm架构的程序。
三、RISC和CISC的区别
RISC是精简指令集,开发板的ARM架构使用的是精简指令集;
精简指令集的指令周期和指令宽度是固定的,指令周期是一条汇编指令执行所需的时间,指令宽度是一条汇编指令所占的空间。
CISC是复杂指令集,是x86架构下的汇编指令集
复杂指令集的指令周期和指令宽度是不固定的,复杂指令集更注重指令功能性。
四、ARM处理器的工作模式
arm处理器有7种工作模式,对于A7核又分为特权模式和非特权模式;
非特权模式包含user用户模式,执行大多数用户代码。特权模式又分为异常模式和非异常模式。
异常模式包括IRQ模式,FIQ模式、undef模式、SVC模式、abort模式,非异常模式为system系统模式,该模式与user模式共用一套寄存器。
五、ARM寄存器组织
寄存器处于SOC的内部cortex-a7核内部,运行速度很快但个数有限。
寄存器介绍:
寄存器属于处理器内部寄存器,没有地址。通过编号进行访问
作用一般存放暂时需要运算的数据。
六、特殊功能寄存器
1.SP----->栈指针寄存器
作用:指向栈空间地址,压栈和出栈时需要移动栈指针。
2.LR----->链接寄存器
作用:保存函数的返回地址,在恢复现场的时候将其赋值给PC寄存器
3.PC----->程序计数器
作用:pc中存放的是当前取指指令的地址,也就是当前执行指令的地址。
4.CPSR寄存器
作用:保存当前程序状态。
5.SPSR寄存器
作用:对CPSR寄存器进行备份
七、汇编指令
1.数据操作指令
mov、mvn
2.移位操作指令
lsl、lsr、asr、ror
3.位运算指令
and、orr、eor、blc
4.算术运算指令
add、adc、sub、sbc、mul
5.比较指令
cmp
6.跳转指令
b、bl
7.内存操作指令
ldr、str
8.多寄存器操作指令
ldm、stm
9.栈指针操作指令,
ARM默认采用满减栈:stmfd、ldmfd