新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM 協(xié)處理器及其指令

ARM 協(xié)處理器及其指令

作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
ARM 微處理器可支持多達 16 個協(xié)處理器,用于各種協(xié)處理操作,在程序執(zhí)行的過程中,每個協(xié)處理器只執(zhí)行針對自身的協(xié)處理指令,忽略 ARM 處理器和其他協(xié)處理器的指令,ARM 的協(xié)處理器指令主要用于:

<1> ARM 處理器初始化

本文引用地址:http://butianyuan.cn/article/201611/316962.htm

<2> ARM 協(xié)處理器的數(shù)據(jù)處理操作

<3> 在ARM 協(xié)處理器的寄存器和處理器的寄存器之間傳送數(shù)據(jù)

<4> 在ARM 協(xié)處理器的寄存器和存儲器之間傳送數(shù)據(jù)

ARM 協(xié)處理器指令包括以下5條

(1) CDP 協(xié)處理器數(shù)操作指令

(2)LDC 協(xié)處理器數(shù)據(jù)加載指令

(3) STC 協(xié)處理器數(shù)據(jù)存儲指令

(4) MCR ARM 處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令

(5) MRC 協(xié)處理器寄存器到ARM 處理器寄存器的數(shù)據(jù)傳送指令

<1> CDP 指令

指令的格式為:

CDP{條件} 協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理器操作碼2。

CDP 指令用于ARM 處理器通知ARM 協(xié)處理器執(zhí)行特定的操作,若協(xié)處理器不能成功完成特定的操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1 和協(xié)處理器操作碼2 為協(xié)處理器將要執(zhí)行的操作,目的寄存器和源寄存器均為協(xié)處理器的寄存器,指令不涉及ARM 處理器的寄存器和存儲器。

指令示例:

CDP P3 ,2 ,C12 ,C10 ,C3 ,4 ;該指令完成協(xié)處理器P3 的初始化

<2> LDC 指令

指令的格式為:

LDC{條件}{L} 協(xié)處理器編碼,目的寄存器,[源寄存器]

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

指令示例:

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

<3> STC 指令

指令的格式為:

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

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

指令示例:

STC P3 , C4 , [R0] ;將協(xié)處理器 P3 的寄存器 C4 中的字數(shù)據(jù)傳送到 ARM 處理器的寄存器R0 所指向的存儲器中。

<4>MCR 指令(mov arm to c,可以這樣來記憶)

指令的格式為:

MCR{條件} 協(xié)處理器編碼,協(xié)處理器操作碼1,源寄存器,目的寄存器1,目的寄存器2,協(xié)處理器操作碼2。

MCR 指令用于將ARM 處理器寄存器中的數(shù)據(jù)傳送到協(xié)處理器寄存器中,若協(xié)處理器不能成功完成操作,則產(chǎn)生未定義指令異常。

其中協(xié)處理器操作碼1 和協(xié)處理器操作碼2 為協(xié)處理器將要執(zhí)行的操作,源寄存器為ARM 處理器的寄存器,目的寄存器1 和目的寄存器2 均為協(xié)處理器的寄存器。

指令示例:

MCR P3 , 3 , R0 , C4 , C5 , 6 ;

該指令將 ARM 處理器寄存器 R0 中的數(shù)據(jù)傳送到協(xié)處理器 P3 的寄存器 C4 和 C5 中。

<5> MRC 指令

指令的格式為:

MRC{條件} 協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理器操作碼2。

MRC 指令用于將協(xié)處理器寄存器中的數(shù)據(jù)傳送到ARM 處理器寄存器中,若協(xié)處理器不能成功完成操作,則產(chǎn)生未定義指令異常。

其中協(xié)處理器操作碼1 和協(xié)處理器操作碼2 為協(xié)處理器將要執(zhí)行的操作,目的寄存器為ARM 處理器的寄存器,源寄存器1 和源寄存器2 均為協(xié)處理器的寄存器。

指令示例:

MRC P3 , 3 , R0 , C4 , C5 , 6 ;

該指令將協(xié)處理器 P3 的寄存器C4 和 C5中的數(shù)據(jù)傳送到 ARM 處理器寄存器R0中。



關(guān)鍵詞: ARM協(xié)處理器指

評論


技術(shù)專區(qū)

關(guān)閉