柚子快報邀請碼778899分享:arm開發(fā) Arm 架構(gòu)學習
柚子快報邀請碼778899分享:arm開發(fā) Arm 架構(gòu)學習
Arm 架構(gòu)學習
01 CPU Architecture
按指令集分
arm RISC (reduced instruction set computer)/ load store structure
x86 CISC(complex instruction set computer)/ direct visit memory
【架構(gòu)知多少】談?wù)刋86架構(gòu)與ARM架構(gòu)區(qū)別_x86與arm架構(gòu)區(qū)別-CSDN博客
按存儲分
馮·諾依曼架構(gòu)的特點是將程序指令和數(shù)據(jù)存儲在同一塊內(nèi)存中,通過一個共享的總線進行數(shù)據(jù)傳輸。這種結(jié)構(gòu)的優(yōu)點是簡單易懂,容易實現(xiàn),廣泛應(yīng)用于現(xiàn)代計算機系統(tǒng)中。
哈弗架構(gòu)則是將指令和數(shù)據(jù)分開存儲,通過不同的總線進行數(shù)據(jù)傳輸,這種結(jié)構(gòu)可以提高計算機的并行處理能力。
CPU是如何工作的?什么是馮·諾依曼架構(gòu)和哈弗架構(gòu)?-CSDN博客
02 register
40個寄存器 = 33個通用寄存器 + 7個狀態(tài)寄存器
專用寄存器
R16 CPSR 當前程序狀態(tài)寄存器
R15 PC(Program Counter) 下一條代碼指令
R14 LR(Link Register) 程序跳轉(zhuǎn)
R13 SP(Stack Pointer) 棧指針
CPSR寄存器分為四個域,[31:24]為條件域用F表示、[23:16]為狀態(tài)域用S表示、[15:8]為預(yù)留域用X表示、[8:0]為控制域用C表示
Bit[4:0]
[10000]User [10001]FIQ [10010]IRQ [10011]SVC
[10111]Abort [11011]Undef [11111]System [10110]Monitor
Bit[5] [0]ARM狀態(tài) [1]Thumb狀態(tài)
Bit[6] [0]開啟FIQ [1]禁止FIQ
Bit[7] [0]開啟IRQ [1]禁止IRQ
Bit[28]
> 當運算器中進行加法運算且產(chǎn)生符號位進位時該位自動置1,否則為0
> 當運算器中進行減法運算且產(chǎn)生符號位借位時該位自動置0,否則為1
Bit[29] > 當運算器中進行加法運算且產(chǎn)生進位時該位自動置1,否則為0
> 當運算器中進行減法運算且產(chǎn)生借位時該位自動置0,否則為1
Bit[30] 當運算器中產(chǎn)生了0的結(jié)果該位自動置1,否則為0
Bit[31] 當運算器中產(chǎn)生了負數(shù)的結(jié)果該位自動置1,否則為0
03 Instruction set
ARM采用RISC架構(gòu),CPU本身不能直接讀取內(nèi)存,而需要先將內(nèi)存中內(nèi)容加載入CPU中通用寄存器才能被CPU處理。使用LDR/STR指令組合來實現(xiàn) ARM CPU和內(nèi)存數(shù)據(jù)的交換:
LDR(load register)指令將內(nèi)存內(nèi)容加載入通用寄存器。 STR(store register)指令將寄存器內(nèi)容存入內(nèi)存空間中。
尋址方式:
立即數(shù)尋址寄存器尋址堆棧尋址
萬字長文帶你由淺入深夯實ARM匯編基礎(chǔ)——匯編指令及尋址方式最全梳理(附示例)!-CSDN博客
04 work mode
usersystemIRQFIQSVCAbortUndefMonitor
異常模式:在ARM的基本工作模式中有5個屬于異常模式,即ARM遇到異常后會切換成對應(yīng)的異常模式。
05 memory mode
ARM支持大端、小端兩種內(nèi)存模式。
大端:數(shù)據(jù)高字節(jié)存在低地址,低字節(jié)存在高地址。
小端:數(shù)據(jù)高字節(jié)存在高地址,低字節(jié)存在低地址。
匯編判斷大小端:
r0 = 0x11223344 ;復(fù)制0x11223344給寄存器r0
r1 = 0x100 ;賦值0x100給寄存器r1
STR r0,[r1] ;把r1的值作為地址,加載r0的數(shù)值到0x100的地址中
LDRB r2,[r1] ;從地址0x100中取出1Byte數(shù)據(jù)
判斷r2的值可知道大小端:
小端模式下:r2=0x44
大端模式下:r2=0x11 ARM學習之ARM基礎(chǔ)知識(一)_學arm需要什么基礎(chǔ)-CSDN博客
柚子快報邀請碼778899分享:arm開發(fā) Arm 架構(gòu)學習
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。