1) 電阻的作用 [上拉電阻] 接在電源和參考點(diǎn)之間的電阻
(1) 作用: 使參考點(diǎn)的電平默認(rèn)為高電平[下拉電阻]
接在地和參考點(diǎn)之間的電阻
(1) 作用: 使參考點(diǎn)的電平默認(rèn)為低電平
2) 局部性原理
程序執(zhí)行時(shí),訪問(wèn)的數(shù)據(jù)和執(zhí)行的指令往往在一個(gè)局部范圍內(nèi)。 3)bus
可以接多個(gè)設(shè)備的一組線叫總線
(1) CPU總線
CPU(ALU和控制器)連接內(nèi)存和IO設(shè)備的一組線, 用于傳輸: 地址、數(shù)據(jù)和控制
地址線
數(shù)據(jù)線
控制線
(2) 單總線(ARM)
內(nèi)存和IO設(shè)備接在相同cpu總線上,表現(xiàn)為:
1. 內(nèi)存和IO設(shè)備在同一地址空間(0 - 4G)
2. 訪問(wèn)內(nèi)存和IO設(shè)備的方法一樣(指令相同)
(3) 多總線(x86)
內(nèi)存和IO設(shè)備接在不同組cpu總線上,表現(xiàn)為:
1. 內(nèi)存和IO設(shè)備在不在同一地址空間(0 - 4G)
2. 訪問(wèn)內(nèi)存和IO設(shè)備的方法一樣(不同指令)
4)RISC & CISC RISC (精簡(jiǎn)指令集): 可以不用硬件實(shí)現(xiàn)的功能,就用軟件實(shí)現(xiàn)。 CISC(復(fù)雜指令集):硬件可以實(shí)現(xiàn)的功能,都由硬件實(shí)現(xiàn)。 5)ARM處理器八種工作模式 (1).正常運(yùn)行 user 運(yùn)行應(yīng)用程序 system 運(yùn)行內(nèi)核中的進(jìn)程上下文 SVC 運(yùn)行操作系統(tǒng)的管理代碼 (2)中斷運(yùn)行 IRQ(中斷請(qǐng)求) 運(yùn)行普通的設(shè)備中斷 FIQ(快速中斷請(qǐng)求)用于快速或安全設(shè)備的中斷 (3)異常處理 Abort 讀取指令或數(shù)據(jù)儲(chǔ)存失敗時(shí),運(yùn)行處理程序的模式 Undefined Instruction 解析指令時(shí),發(fā)現(xiàn)指令非法,運(yùn)行處理程序的模式 (4)Monitor Coetex-A 安全模式 6)權(quán)限 user非特權(quán)模式 其它 特權(quán)模式 7)寄存器 概念: 軟硬件接口,也是存儲(chǔ)單元。CPU內(nèi)核寄存器,也是存儲(chǔ)單元,CPU利用寄存器的名字中的編號(hào)來(lái)訪問(wèn)寄存器。 功能: R0——R15通用寄存器 R0——R7 非備份寄存器 R8——R14 備份寄存器 R13 (SP) 棧指針寄存器 R14(LR) 保存返回地址寄存器 R15(PC) Program Count (正在讀取的指令的地址) CPSR 狀態(tài)寄存器 SPSR 備份狀態(tài)寄存器 8) CPSR 狀態(tài)標(biāo)識(shí)位(ALU運(yùn)算時(shí)產(chǎn)生)
(1)N 計(jì)算的結(jié)果是否為負(fù)數(shù)(保存下來(lái)的結(jié)果的最高位)
1 負(fù)數(shù)
0 正數(shù)
例: 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 計(jì)算的結(jié)果是否為0(保存下來(lái)的結(jié)果)
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 加法運(yùn)算中,是否有進(jìn)位 1 進(jìn)位
0 不進(jìn)位
減法運(yùn)算中,是否有借位
1 沒(méi)有借位
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 計(jì)算的結(jié)果是否超出補(bǔ)碼的范圍()
1 超出補(bǔ)碼的范圍
0 沒(méi)有超出補(bǔ)碼的范圍
例: 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
總結(jié):
如果運(yùn)算的結(jié)果為負(fù)數(shù)(保存), 并且V = 1, 說(shuō)明原本(實(shí)際)的結(jié)果為正數(shù)
正數(shù)或0 V = 1, 負(fù)數(shù)
I位 屏蔽IRQ中斷
F位 屏蔽FIQ中斷
T位 1 表示正在運(yùn)行thumb指令,處于thumb狀態(tài)
0 ARM ARM
模式位 0 - 4bit |