新聞中心

        ARM匯編協(xié)處理器指令

        作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
        協(xié)處理器(coprocessor),一種芯片,用于減輕系統(tǒng)微處理器的特定處理任務(wù)。

        ARM微處理器可支持多達(dá)16個(gè)協(xié)處理器用于各種協(xié)處理操作。

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

        在程序執(zhí)行的過(guò)程中,每個(gè)協(xié)處理器只執(zhí)行針對(duì)自身的協(xié)處理指令,忽略ARM處理器和其他協(xié)處理器的指令。

        ARM的協(xié)處理器指令主要用于ARM處理器初始化ARM協(xié)處理器的數(shù)據(jù)處理操作,以及在ARM處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在ARM協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。

         

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

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

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

        STC:協(xié)處理器存儲(chǔ)指令。  

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

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

        1、CDP指令

        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處理器的寄存器和存儲(chǔ)器。

        指令示例:

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

        2、LDC指令

        LDC指令的格式為:

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

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

        指令示例:

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

        3、STC指令

        STC指令的格式為:

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

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

        指令示例:

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

        4、MCR指令

        MCR指令的格式為:

        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指令的格式為:

        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的寄存器中的數(shù)據(jù)傳



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

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 沧源| 仪征市| 广南县| 高雄市| 张家港市| 临高县| 庄浪县| 手机| 曲沃县| 商都县| 南皮县| 遵化市| 曲麻莱县| 仲巴县| 汝阳县| 额济纳旗| 临泽县| 桐柏县| 新乐市| 双牌县| 股票| 兰州市| 宜兴市| 北碚区| 英吉沙县| 鄄城县| 禄劝| 大洼县| 吉水县| 波密县| 印江| 肥西县| 涪陵区| 弥勒县| 会东县| 澄江县| 华蓥市| 延津县| 杭州市| 通辽市| 个旧市|