ARM指令集 協處理器指令

2021-04-13 08:24:39 字數 1905 閱讀 8688

arm 微處理器可支援多達 16 個協處理器,用於各種協處理操作,在程式執行的過程中,每個協處理器只執行針對自身的協處理指令,忽略 arm 處理器和其他協處理器的指令。

arm 的協處理器指令主要用於 arm 處理器初始化 arm 協處理器的資料處理操作,以及在arm 處理器的暫存器和協處理器的暫存器之間傳送資料,和在 arm 協處理器的暫存器和儲存器之間傳送資料。 arm 協處理器指令包括以下 5 條:

— cdp 協處理器數操作指令

— ldc 協處理器資料載入指令

— stc 協處理器資料儲存指令

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

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

1、cdp 指令

cdp 指令的格式為:

cdp 協處理器編碼,協處理器操作碼1,目的暫存器,源暫存器1,源暫存器2,協處理

器操作碼2。

cdp 指令用於arm 處理器通知arm 協處理器執行特定的操作,若協處理器不能成功完成特定的操作,則產生未定義指令異常。其中協處理器操作碼1 和協處理器操作碼2 為協處理器將要執行的操作,目的暫存器和源暫存器均為協處理器的暫存器,指令不涉及arm 處理器的暫存器和儲存器。

指令示例:

cdp p3 , 2 , c12 , c10 , c3 , 4 ;該指令完成協處理器 p3 的初始化

2、ldc 指令

ldc 指令的格式為:

ldc 協處理器編碼,目的暫存器,[源暫存器]

ldc 指令用於將源暫存器所指向的儲存器中的字資料傳送到目的暫存器中,若協處理器不能成功完成傳送操作,則產生未定義指令異常。其中,選項表示指令為長讀取操作,如用於雙精度資料的傳輸。

指令示例:

ldc p3 , c4 , [r0] ;將 arm 處理器的暫存器 r0 所指向的儲存器中的字資料傳送到協處理器 p3 的暫存器 c4 中。

3、stc 指令

stc 指令的格式為:

stc 協處理器編碼,源暫存器,[目的暫存器]

stc 指令用於將源暫存器中的字資料傳送到目的暫存器所指向的儲存器中,若協處理器不能成功完成傳送操作,則產生未定義指令異常。其中,選項表示指令為長讀取操作,如用於雙精度資料的傳輸。

指令示例:

stc p3 , c4 , [r0] ;將協處理器 p3 的暫存器 c4 中的字資料傳送到 arm 處理器的暫存器r0 所指向的儲存器中。

4、mcr 指令

mcr 指令的格式為:

mcr 協處理器編碼,協處理器操作碼1,源暫存器,目的暫存器1,目的暫存器2,協處

理器操作碼2。

mcr 指令用於將arm 處理器暫存器中的資料傳送到協處理器暫存器中,若協處理器不能成功完成操作,則產生未定義指令異常。其中協處理器操作碼1 和協處理器操作碼2 為協處理器將要執行的操作,源暫存器為arm 處理器的暫存器,目的暫存器1 和目的暫存器2 均為協處理器的暫存器。

指令示例:

mcr p3 , 3 , r0 , c4 , c5 , 6 ;該指令將 arm 處理器暫存器 r0 中的資料傳送到協處理器 p3 的暫存器 c4 和 c5 中。

5、mrc 指令

mrc 指令的格式為:

mrc 協處理器編碼,協處理器操作碼1,目的暫存器,源暫存器1,源暫存器2,協處理

器操作碼2。

mrc 指令用於將協處理器暫存器中的資料傳送到arm 處理器暫存器中,若協處理器不能成功完成操作,則產生未定義指令異常。其中協處理器操作碼1 和協處理器操作碼2 為協處理器將要執行的操作,目的暫存器為arm 處理器的暫存器,源暫存器1 和源暫存器2 均為協處理器的暫存器。

指令示例:

mrc p3 , 3 , r0 , c4 , c5 , 6 ;該指令將協處理器 p3 的暫存器中的資料傳送到 arm 處理器暫存器中.

ARM指令協處理器處理指令

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

ARM指令協處理器處理指令

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

ARM微處理器的指令集

跳轉指令 資料處理指令 程式狀態暫存器 psr 處理器 載入 儲存指令 協處理器指令 異常產生指令 adc 帶進製加法指令 add 加法指令 and 邏輯與指令 b 跳轉指令 bic 位清零指令 bl 帶返回的跳轉指令 blx 返回和狀態跳轉指令 bx 帶狀態切換的跳轉指令 cdp 協處理器資料操作...