16_ARM匯編自學筆記指令系統之協處理器指令

ARM 202瀏覽

協處理器指令

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元网官网