1) 电阻的作用
[上拉电阻]
接在电源和参考点之间的电阻(1) 作用: 使参考点的电平默认为高电平
[下拉电阻]
接在地和参考点之间的电阻
(1) 作用: 使参考点的电平默认为低电平
2) 局部性原理
程序执行时,访问的数据和执行的指令往往在一个局部范围内。
3)bus
可以接多个设备的一组线叫总线
(1) CPU总线
CPU(ALU和控制器)连接内存和IO设备的一组线, 用于传输: 地址、数据和控制
地址线
数据线
控制线
(2) 单总线(ARM)
内存和IO设备接在相同cpu总线上,表现为:
1. 内存和IO设备在同一地址空间(0 - 4G)
2. 访问内存和IO设备的方法一样(指令相同)
(3) 多总线(x86)
内存和IO设备接在不同组cpu总线上,表现为:
1. 内存和IO设备在不在同一地址空间(0 - 4G)
2. 访问内存和IO设备的方法一样(不同指令)
4)RISC & CISC
RISC (精简指令集): 可以不用硬件实现的功能,就用软件实现。
CISC(复杂指令集):硬件可以实现的功能,都由硬件实现。
5)ARM处理器八种工作模式
(1).正常运行
user 运行应用程序
system 运行内核中的进程上下文
SVC 运行操作系统的管理代码
(2)中断运行
IRQ(中断请求) 运行普通的设备中断
FIQ(快速中断请求)用于快速或安全设备的中断
(3)异常处理
Abort 读取指令或数据储存失败时,运行处理程序的模式
Undefined Instruction 解析指令时,发现指令非法,运行处理程序的模式
(4)Monitor
Coetex-A 安全模式
6)权限
user非特权模式
其它 特权模式
7)寄存器
概念: 软硬件接口,也是存储单元。CPU内核寄存器,也是存储单元,CPU利用寄存器的名字中的编号来访问寄存器。
功能: R0——R15通用寄存器
R0——R7 非备份寄存器
R8——R14 备份寄存器
R13 (SP) 栈指针寄存器
R14(LR) 保存返回地址寄存器
R15(PC) Program Count (正在读取的指令的地址)
CPSR 状态寄存器
SPSR 备份状态寄存器
8) CPSR
状态标识位(ALU运算时产生)
(1)N
计算的结果是否为负数(保存下来的结果的最高位)
1 负数
0 正数
例: 2 - 3 = -1 N = 1
0000 0000 0000 0000 0000 0000 0000 0010
+1111 1111 1111 1111 1111 1111 1111 1101
-----------------------------------------
1
2 - 1 = 1 N = 0
0000 0000 0000 0000 0000 0000 0000 0010
+1111 1111 1111 1111 1111 1111 1111 1111
-----------------------------------------
10
int x, y
....
if (x > y)
(2) Z
计算的结果是否为0(保存下来的结果)
1 为0
0 为非0
例: 2 - 2 = 0 Z = 1
0000 0000 0000 0000 0000 0000 0000 0010
+1111 1111 1111 1111 1111 1111 1111 1110
-----------------------------------------
10
int x, y
...
if (x == y)
(3) C
加法运算中,是否有进位
1 进位
0 不进位
减法运算中,是否有借位
1 没有借位
0 有借位
例: 2 - 3 = -1 C = 0
0000 0000 0000 0000 0000 0000 0000 0010
+1111 1111 1111 1111 1111 1111 1111 1101
-----------------------------------------
1
2 - 3 = -1 C = 0
0000 0000 0000 0000 0000 0000 0000 0010
-0000 0000 0000 0000 0000 0000 0000 0011
-----------------------------------------
unsigned int x, y;
...
if (x > y)
(4)V
计算的结果是否超出补码的范围()
1 超出补码的范围
0 没有超出补码的范围
例: 0x7fffffff - (-1) = -2^31 V = 1
0 0111 1111 1111 1111 1111 1111 1111 1111
+0 0000 0000 0000 0000 0000 0000 0000 0001
------------------------------------------
0 1 0
-2^31 - 1 V = 1
-2^31 +(-2^31) V = 1
-1 + -1 V = 0
1 1111 1111 1111 1111 1111 1111 1111 1111
1 1111 1111 1111 1111 1111 1111 1111 1111
-----------------------------------------
1 1 10
总结:
如果运算的结果为负数(保存), 并且V = 1, 说明原本(实际)的结果为正数
正数或0 V = 1, 负数
I位 屏蔽IRQ中断
F位 屏蔽FIQ中断
T位 1 表示正在运行thumb指令,处于thumb状态
0 ARM ARM
模式位 0 - 4bit