新聞中心

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

        ARM匯編協處理器指令

        作者: 時間:2016-11-10 來源:網絡 收藏
        協處理器(coprocessor),一種芯片,用于減輕系統微處理器的特定處理任務。

        ARM微處理器可支持多達16個協處理器用于各種協處理操作。

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

        在程序執行的過程中,每個協處理器只執行針對自身的協處理指令,忽略ARM處理器和其他協處理器的指令。

        ARM的協處理器指令主要用于ARM處理器初始化ARM協處理器的數據處理操作,以及在ARM處理器的寄存器和協處理器的寄存器之間傳送數據,和在ARM協處理器的寄存器和存儲器之間傳送數據。

         

        ARM協處理器包括以下5條:  

        CDP:協處理器數操作指令。  

        LDC:協處理器數據加載指令。  

        STC:協處理器存儲指令。  

        MCR:ARM處理器寄存器到協處理器寄存器的數據傳送指令。(ARM->協)  

        MRC:協處理器寄存器到ARM處理器寄存器的數據傳送指令。(協->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的寄存器中的數據傳



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 咸阳市| 垣曲县| 华安县| 县级市| 新余市| 桦川县| 梅河口市| 阳春市| 比如县| 白水县| 治多县| 大兴区| 方山县| 克什克腾旗| 洪雅县| 永福县| 兴国县| 嘉兴市| 阿克陶县| 昌都县| 横峰县| 杭锦旗| 白河县| 武夷山市| 肇源县| 中阳县| 竹溪县| 隆林| 张家界市| 饶阳县| 旌德县| 沙河市| 佛山市| 平定县| 招远市| 习水县| 洛扎县| 留坝县| 中超| 古浪县| 晋州市|