Linux學習筆記1 1

2021-07-25 19:40:36 字數 2911 閱讀 7419

arm架構處理器的工作模式:

usr(user):普通應用程式的執行模式

fiq (fast interrupt):快速中斷模式,用於處理快速的事件,例如高速資料傳輸

irq (interrupt):外部中斷模式,用於處理通用中斷事件

svc(supervisor):又稱保護模式,作業系統使用的特權模式

abt(abort):資料訪問中止模式,用於虛擬儲存和儲存保護

und(undefined):未定義指令終止模式,用於支援通過軟體**硬體的協處理器

sys(system):系統模式,用於執行特權級的作業系統任務

注意:usr為普通模式,其他六個模式為特權模式;除了usr和sys模式,其他的五個模式為異常模式

arm架構處理器的暫存器:

暫存器的作用

arm架構處理器常用指令介紹:

條件碼是在arm指令執行之前,判斷是否符合條件,如果符合則執行該指令。

條件碼如下表所示:

操作碼條件助記符

判斷的標誌位

含義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任何條件

從不執行

1)資料處理指令

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 也能實現多型。在子類的空間裡,有父類的私有變數。私有...