|
自己整理的ARM學(xué)習(xí)總結(jié)以及記錄,搜集了一些關(guān)于ARM CPU啟動方面的關(guān)鍵知識點,希望對大家有用。
一、CPSR概述
ARM處理器共有37個寄存器。這37個寄存器按其在用戶編程中的功能劃分,可分為2類寄存器,即31個通用寄存器和6個狀態(tài)寄存器。這6個狀態(tài)寄存器在ARM公司文件中其名稱分別為:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fig。這12的作用分別如圖1所示:
0.png (103.83 KB, 下載次數(shù): 106)
下載附件
2019-2-27 02:09 上傳
所有處理器模式下都可訪問當(dāng)前程序狀態(tài)寄存器CPSR。CPSR中包含條件碼標(biāo)志、中斷禁止位、當(dāng)前處理器模式以及其他狀態(tài)和控制信息。在每種異常模式下都有一個對用的程序狀態(tài)寄存器SPSR。當(dāng)異常出現(xiàn)時,SPSR用于保存CPSR的狀態(tài),以便異常返回后恢復(fù)異常發(fā)生時的工作狀態(tài)。
(1)條件碼標(biāo)志
N、Z、C、V,最高4位稱為條件碼標(biāo)志。ARM的大多數(shù)指令可以條件執(zhí)行的,即通過檢測這些條件碼標(biāo)志來決定程序指令如何執(zhí)行。
各個條件碼的含義如下:
N:在結(jié)果是有符號的二進(jìn)制補(bǔ)碼情況下,如果結(jié)果為負(fù)數(shù),則N=1;如果結(jié)果為非負(fù)數(shù),則N=0。
Z:如果結(jié)果為0,則Z=1;如果結(jié)果為非零,則Z=0。
C:其設(shè)置分一下幾種情況:
對于加法指令(包含比較指令CMN),如果產(chǎn)生進(jìn)位,則C=1;否則C=0。
對于減法指令(包括比較指令CMP),如果產(chǎn)生借位,則C=0;否則C=1。
對于有移位操作的非法指令,C為移位操作中最后移出位的值。
對于其他指令,C通常不變。
V:對于加減法指令,在操作數(shù)和結(jié)果是有符號的整數(shù)時,如果發(fā)生溢出,則V=1;如果無溢出發(fā)生,則V=0;對于其他指令,V通常不發(fā)生變化。
(2)控制位的作用在圖1中可以看出,在這里就不闡述了。
二:CPSR與CPSR_c的區(qū)別
CPSR有4個8位區(qū)域:標(biāo)志域(F)、狀態(tài)域(S)、擴(kuò)展域(X)、控制域(C)
完整的Word格式文檔51黑下載地址(共34頁):
arm學(xué)習(xí)記錄.docx
(318.24 KB, 下載次數(shù): 25)
2019-2-26 16:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|