1、關(guān)于ARM的名詞歸類
在ARM領(lǐng)域里。我們會經(jīng)??吹竭@樣一些名詞,如:ARMv6、ARMv7、S3c6410、ARM9、S3c2440、ARM11、CortexA8、S5Pv210.我們可以把這些名詞分類來整理一下。
芯片 ARM核 指令架構(gòu) 2440 ARM9 ARMv4 6410 ARM11 ARMv6 210 A8 ARMv7
2、ARM核的演變圖
-M系列主要面向面對工控,-R面向?qū)崟r(shí),-A面向多媒體
3、關(guān)于2440、6410、210三款芯片的性能對比
4、ARM的工作模式:
ARM處理器的工作模式有7種,他們分別是:usr、fiq、irq、svc、abt、und、sys;各種工
作模式都有不同的工作范圍和權(quán)限,其主要是為了系統(tǒng)的安全性。
5、ARM寄存器詳解
由上圖可知,ARM共有37個寄存器,其中包含31個通用寄存器,6個狀態(tài)寄存器。在31
個通用寄存器中,其中有分組通用給寄存器(R0—R7)、分組通用寄存器(R8-R14)。程序計(jì)
數(shù)器R15,即PC指針。 在這些寄存器中,R13正常使用的是作為堆棧指針,就是SP。R14 是鏈接寄存器LR,它有兩個特殊的作用:一是保存子函數(shù)的返回地址,二是當(dāng)發(fā)生異常時(shí),
保存異常處理的返回地址。
在狀態(tài)寄存器CPSR或SPSR寄存器中,有些位需要我們掌握的就是N、Z、I、F、M。
N:當(dāng)兩個數(shù)相減的時(shí)候,如果是負(fù)數(shù)則N=1,如果是整數(shù)或者0則N=0;
Z:兩個數(shù)相比較,如果相等則Z=1,否則等于0;
I:當(dāng)這個位設(shè)置為1時(shí)將不使能普通中斷;
F:當(dāng)這個位設(shè)置為1時(shí)將不使能快速中斷;
M[4:0]:決定了進(jìn)程的操作在哪種工作模式,可以通過讀這幾位來了解此時(shí)工作在什么模式,
也可通過寫著幾位來切換工作模式。
6、ARM尋址方式
所謂的尋址方式就是處理器根據(jù)指令中的信息來找到指令所需操作數(shù)的方式。
(1)立即數(shù)尋址
立即數(shù)尋址,是一種特殊的尋址方式,操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。這個操作數(shù)被稱為立即數(shù),對應(yīng)的尋址方式也就叫做立即數(shù)尋址。例如一下指令: ADD R0,R0,#0x3f; R0<---R0+0x3f 在以上指令中,第二個源操作數(shù)即為立即數(shù),要求以“#”為前綴。
(2)寄存器尋址
寄存器尋址就是利用寄存器中的數(shù)值作為操作數(shù),這種尋址方式是一種執(zhí)行效率較高的
尋址方式。
ADD R0,R1,R2 ;R0 <---R1 + R2 該指令的執(zhí)行效果是將寄存器R1和R2的內(nèi)容相加,其結(jié)果存放在寄存器R0中。
(3)寄存器器間接尋址
寄存器間接尋址就是寄存器中的存放的是操作數(shù)在內(nèi)存中的地址。例如以下指令:
LDR R0,[R2] ;R0<---[R2]
在這條指令中,以寄存器R2的值作為操作數(shù)的地址,在存儲器中取得一個操作數(shù)后與
R1相加,結(jié)果存入寄存器R0中。
(4)基址變址尋址
基址變址尋址就將寄存器里的內(nèi)容(基地址)與指令中給出的地址偏移量相加,從而得
到操作數(shù)在內(nèi)存中的地址:
LDR R0, [R1,#4] ;R0<----[R1+4]
(5)相對尋址
與基址變址尋址方式相類似,相對尋址PC指針的當(dāng)前值為基地址,指令中的地址標(biāo)號
作為偏移量,將兩者相加后得到操作數(shù)的有效地址。以下程序段完成子程序的調(diào)用和返回,
跳轉(zhuǎn)指令BL采用了相對尋址方式:
BL NEXT; 跳轉(zhuǎn)到子程序NEXT處執(zhí)行 ....... NEXT ...... MOV PC, LR;從子程序返回 |
|