一、编程模型
1.1.数据和指令集
1.数据
ARM 采用的是32位架构。
ARM 约定:
Byte : 8 bits
Halfword : 16 bits (2 byte)
Word : 32 bits (4 byte)
Doubleword 64-bits(8byte)(Cortex-A处理器)
2.指令
ARM 指令集(32-bit)
Thumb 指令集(16-bit)//一般用于紧急处理指令,arm为32位一次可以取2条该指令,效率高
3. 字节序
也就是所谓的大小端存储,我们的计算机一般是小端存储。
1.2.处理器的工作模式
共有七种基本工作模式
1.3.ARM寄存器
ARM 有37个32-Bits长的寄存器.
1 个用作PC( program counter)
1个用作CPSR(current program status register)
5个用作SPSR(saved program status registers)
30 个通用寄存器
pc,lr,sp三者中,pc是唯一的,sp,lr不同的工作模式下不同。
1.4.程序状态寄存器
寄存器四字节---32位
1.条件位
简单的计算结果标志
N=存储计算结果的负值
Z=存储计算结果位零
C=存储进位借位
V=存储溢出
2.大小端控制位
E---大小端控制位 // 0,1 控制
3.中断禁止位
I = 1 --- 中断禁止
F = 1 --- 快中断禁止
4.处理器工作模式定位
七个工作模式,需要5位来控制
10000---user
10001---FIQ
10010---IRQ
10011---SVC
10110---monitor
10111---abord
11011---undfine
1.5.异常处理
异常就是程序正常执行以外的其他情况(复位、中断等等)
1.6. ARM处理器的发展
1.ARM处理器过去的分类
ARM(数字符)+ 字母(适用场景) 了解一下就行
2.ARM的演变
3大类:
Cortex-A --- 低功耗 消费类 环境要求最高 (手机、平板)
Cortex-R --- 实时性 (汽车动力系统)
Cortex-M --- 高性能 偏控制 环境要求最底(工厂--- stm32自动化流水线)
1.7.ARM指令架构(版本)
例如:ARM9V4
二、ARM汇编
2.1.常用的两类ARM编译开发环境
2.2.汇编文件格式
不区分大小写,要么大写,要么小写;
.s --- 汇编文件 汇编语言编写
.c --- 程序文件 C语言编写
.h --- 头文件
2.3.ARM汇编语言程序格式
C语言 --- 以函数为单位
汇编 --- 以段为单位 //汇编至少需要一个代码段
--- 代码段
--- 数据段
2.4.ARM汇编中常见的伪操作
C语言中的伪操作有 --- #include
--- #define
2.5.ARM汇编的基本结构举例说明
2.6.数据处理指令分类
2.7.数据处理指令