ARM協處理器處理指令介紹

2021-09-16 12:53:49 字數 1622 閱讀 3101

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

好文要頂

關注我收藏該文

跨七海的風

關注 - 21

粉絲 - 38

+加關注 0 0

c++ 程式設計輸入輸出語句

c++的筆記學習第一篇,認識c++

posted @ 2014-07-21 15:10

收藏

ARM指令協處理器處理指令

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

ARM指令協處理器處理指令

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

ARM指令集 協處理器指令

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