arm架構處理器的工作模式:
usr(user):普通應用程式的執行模式
fiq (fast interrupt):快速中斷模式,用於處理快速的事件,例如高速資料傳輸
irq (interrupt):外部中斷模式,用於處理通用中斷事件
svc(supervisor):又稱保護模式,作業系統使用的特權模式
abt(abort):資料訪問中止模式,用於虛擬儲存和儲存保護
und(undefined):未定義指令終止模式,用於支援通過軟體**硬體的協處理器
sys(system):系統模式,用於執行特權級的作業系統任務
注意:usr為普通模式,其他六個模式為特權模式;除了usr和sys模式,其他的五個模式為異常模式
arm架構處理器的暫存器:
暫存器的作用
arm架構處理器常用指令介紹:
條件碼是在arm指令執行之前,判斷是否符合條件,如果符合則執行該指令。1)資料處理指令條件碼如下表所示:
操作碼條件助記符
判斷的標誌位
含義0000
eq(equal)
z = 1
相等0001
ne(not equal)
z = 0
不相等0010
cs/hs(carry set/high or same)
c = 1
無符號數大於或者等於
0011
cc/lo(carry clear/lower)
c = 0
無符號數小於
0100
mi(minus)
n = 1
負數0101
pl(plus)
n = 0
正數或者零
0110
vs(overflow set)
v = 1
溢位0111
vc(overflow clear)
v = 0
沒有溢位
1000
hi(lower or same)
c = 1,z = 0
無符號數大於
1001
ls(lower or same)
c = 0,z = 1
無符號數小於或等於
1010
ge(greater or equal)
n = v
有符號數大於或等於
1011
lt(less than)
n != v
有符號數小於
1100
gt(greater than)
z = 0,n = v
有符號數大於
1101
le(less or equal)
z = 1,n != v
有符號數小於或等於
1110
al(all)
任何條件
無條件執行(預設情況)
1111
nv任何條件
從不執行
move: mov r1,r0; r1 = r0
move not: mvn r1,r0; r1 = ~r0
compare: cmp r1,#100; r1 - 100 影響cpsr的條件碼標誌位
compare negative: cmn r1,r0; r1 + r0 影響cpsr的條件碼標誌位
test: tst r1,#0xfffe; r1 & 0xfffe 影響cpsr的條件碼標誌位
test equalvalence: teq r1,r0; r1^r0 影響cpsr的條件碼標誌位
add: add r0,r1,r2; r0 = r1 + r2
add with carry: adc r0,r1,r2; r0 = r1 + r2 + cpsr->c
subtract: sub r0,r1,r2; r0 = r1 - r2
reverse subtract: rsb r0,r1,r2; r0 = r2 -r1
multiply: mul r0,r1,r2;r0 = r1*r2
and: and r0,r0,#3; r0 = r0 & 3
or :orr r0,r0,#3; r0 = r0 | 3
bit clear: bic r0,r0,#0xfe; r0 = r0 | 0xfe
load word: ldr r0,; 將儲存位址為r1+r2的字資料讀入到暫存器r0
ldr r0,!;將儲存位址為r1+r2的字資料讀入到暫存器r0,並將新位址寫入到r1
store: str r0,[r1],#8;將r0中的字資料寫入到r1+8的位址
move psr to register: msr cpsr,r0;將r0的內容寫入到cpsr中
move register to psr: mrs r0,cpsr;傳送cpsr的內容到暫存器r0
2)跳轉指令
branch: b label; 程式無條件跳轉到標號label處執行
branch with link: bl label;當程式無條件跳轉到label處執行時,同時將當前的pc值儲存到r14中(link register)
branch with link and exchange: blx label;從arm指令集跳轉到label所指定的目標位址,並將處理器的工作狀態由arm狀態切換到thumb狀態,該指令同時將pc的當前內容儲存到暫存器r14中
branch and exchange: bx label;跳轉到label所指定的目標位址,目標位址的指令既可以是arm指令也可以是thumb指令
linux學習筆記11
linux和windows互傳檔案 首先的要安裝乙個軟體,只能使用xsell,不能使用putty因為putty不支援。安裝完軟體後就可以與windows相互傳檔案了 有linux向windows傳檔案使用sz反之使用rz 使用者配置檔案和密碼配置檔案 etc passwd 存放使用者的配置檔案。et...
Linux學習筆記11
1 基本正規表示式字元,擴充套件正規表示式,預定義中括號表示式和元字元 一 基本正規表示式 bre 集合 1 尖角號,用法為 oldboy 表示匹配以oldboy單詞開頭的行 2 美元符,用法為 oldboy 表示匹配以oldboy單詞結尾的行 3 組合符,表示空行,邏輯解釋就是以 結尾的行,或者以...
學習筆記1 1
1.virtual修飾符會被 繼承的。private 也被整合,只事派生類沒有訪問許可權而已。virtual可加可不加。子類的空間裡有父類的所有變數 static除外 同乙個函式只存在乙個實體 inline除外 子類覆蓋它的函式不加virtual 也能實現多型。在子類的空間裡,有父類的私有變數。私有...