新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM 協處理器及其指令

        ARM 協處理器及其指令

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

        <1> ARM 處理器初始化

        本文引用地址:http://www.104case.com/article/201611/316962.htm

        <2> ARM 協處理器的數據處理操作

        <3> 在ARM 協處理器的寄存器和處理器的寄存器之間傳送數據

        <4> 在ARM 協處理器的寄存器和存儲器之間傳送數據

        ARM 協處理器指令包括以下5條

        (1) CDP 協處理器數操作指令

        (2)LDC 協處理器數據加載指令

        (3) STC 協處理器數據存儲指令

        (4) MCR ARM 處理器寄存器到協處理器寄存器的數據傳送指令

        (5) MRC 協處理器寄存器到ARM 處理器寄存器的數據傳送指令

        <1> CDP 指令

        指令的格式為:

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

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

        指令示例:

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

        <2> LDC 指令

        指令的格式為:

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

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

        指令示例:

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

        <3> STC 指令

        指令的格式為:

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

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

        指令示例:

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

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

        指令的格式為:

        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{條件} 協處理器編碼,協處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協處理器操作碼2。

        MRC 指令用于將協處理器寄存器中的數據傳送到ARM 處理器寄存器中,若協處理器不能成功完成操作,則產生未定義指令異常。

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

        指令示例:

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

        該指令將協處理器 P3 的寄存器C4 和 C5中的數據傳送到 ARM 處理器寄存器R0中。



        關鍵詞: ARM協處理器指

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 屯留县| 大英县| 江都市| 蓬莱市| 义马市| 滦南县| 常熟市| 光山县| 稻城县| 融水| 绥棱县| 文登市| 沾化县| 潮安县| 石屏县| 梧州市| 莱州市| 馆陶县| 额敏县| 德令哈市| 普格县| 乐陵市| 彩票| 冷水江市| 集贤县| 镇远县| 新巴尔虎左旗| 禹城市| 大方县| 射阳县| 黄梅县| 安塞县| 许昌县| 四川省| 金平| 鄂托克前旗| 桃源县| 泸水县| 盐亭县| 长武县| 碌曲县|