ARM指令集-協處理器指令

ARM 230瀏覽
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{條件}{L} 協處理器編碼,目的寄存器,[源寄存器]

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

指令示例:

LDC P3 , C4 , [R0] ;將 ARM 處理器的寄存器 R0 所指向的存儲器中的字數據傳送到協處理器 P3 的寄存器 C4 中。

3、STC 指令

STC 指令的格式為:

STC{條件}{L} 協處理器編碼,源寄存器,[目的寄存器]

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

指令示例:

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 處理器寄存器中.

?

七星彩走势图2元网官网