ARM指令協處理器處理指令

2022-04-06 17:13:59 字數 1432 閱讀 8354

arm支援16個協處理器,在程式執行過程中,每個協處理器忽略屬於arm處理器和其他協處理器指令,當乙個協處理器硬體不能執行屬於她的協處理器指令時,就會產生乙個未定義的異常中斷,在異常中斷處理程式中,可以通過軟體模擬該硬體的操作,比如,如果系統不包含向量浮點運算器,則可以選擇浮點運算軟體模擬包來支援向量浮點運算

arm協處理器指令包括如下三類:

1用於arm處理器初始化arm協處理器的資料操作

2:用於arm處理器的暫存器和arm協處理器的暫存器間的資料傳送操作

3:用於在arm協處理器的暫存器和記憶體單元之間傳送資料

這些指令包括如下5條

cdp協處理器資料操作指令

ldc協處理器資料讀入指令

stc協處理器資料寫入指令

mcr arm暫存器到協處理器暫存器的資料傳送指令

mrc 協處理器暫存器到arm暫存器的資料傳送指令

使用方法:

cdp p5, 2,c12,c10,c3,4  ;協處理器p5的操作初始化,其中操作碼1為2,操作碼2為4,目標暫存器為c12,源運算元暫存器位c10,和c3

ldc 指令從一系列連續的記憶體單元將資料讀取到協處理器的暫存器中,如果協處理器不能成功的執行該操作,將產生未定義的指令異常操作

例項:

ldc p6, cr4,[r2,#

4];r2為arm暫存器,指令讀取記憶體單元r2+4的字資料,傳送到協處理器p6的cr4暫存器中

stc(協處理器資料寫入指令)

stc指令將協處理器的暫存器中的資料寫入一些列記憶體單元中

例項:

stc p8,cr8,[r2,#

4]! ;r2為arm暫存器,

指令將協處理器p8的cr8暫存器中的字資料寫入到記憶體單元(r2+4)中,

然後執行r2=r2+4操作

mcr(arm暫存器到協處理器暫存器的資料傳送指令)

mcr 指令將arm處理器的暫存器中的資料傳送到協處理器的暫存器中,如果協處理器不能成功執行該操作,將產生未定義的指令異常中斷

例項

mcr p14,

3,r7,c7,c11,6 ;指令從arm暫存器中將資料傳送到協處理器p14的暫存器中,

其中r7為arm暫存器,存放源運算元,c7和c11位協處理器

暫存器,為目標暫存器,操作碼1為3,操作碼2為6

mrc協處理器暫存器到arm暫存器的資料傳送指令

mrc指令將協處理器暫存器中的數值傳送到arm的暫存器中,如果協處理器不能成功的執行這些操作,那麼將產生未定義的指令異常中斷

例項

mrc p15,

2,r5,c0,c2,4 ;指令將協處理器p15暫存器中的資料傳送到arm暫存器中,

其中,r5為arm暫存器,是目標暫存器,c0和c2為協處理器

暫存器,存放源運算元,操作碼1為2,操作碼2為4

ARM指令協處理器處理指令

arm支援16個協處理器,在程式執行過程中,每個協處理器忽略屬於arm處理器和其他協處理器指令,當乙個協處理器硬體不能執行屬於她的協處理器指令時,就會產生乙個未定義的異常中斷,在異常中斷處理程式中,可以通過軟體模擬該硬體的操作,比如,如果系統不包含向量浮點運算器,則可以選擇浮點運算軟體模擬包來支援向...

ARM協處理器處理指令介紹

arm支援16個協處理器,在程式執行過程中,每個協處理器忽略屬於arm處理器和其他協處理器指令,當乙個協處理器硬體不能執行屬於她的協處理器指令時,就會產生乙個未定義的異常中斷,在異常中斷處理程式中,可以通過軟體模擬該硬體的操作,比如,如果系統不包含向量浮點運算器,則可以選擇浮點運算軟體模擬包來支援向...

ARM指令集 協處理器指令

arm 微處理器可支援多達 16 個協處理器,用於各種協處理操作,在程式執行的過程中,每個協處理器只執行針對自身的協處理指令,忽略 arm 處理器和其他協處理器的指令。arm 的協處理器指令主要用於 arm 處理器初始化 arm 協處理器的資料處理操作,以及在arm 處理器的暫存器和協處理器的暫存器...