新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM協(xié)處理器主要用途 及其 指令CDP LDC STC MCR MRC介紹

        ARM協(xié)處理器主要用途 及其 指令CDP LDC STC MCR MRC介紹

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

        <1>ARM處理器初始化

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

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

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

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

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

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

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

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

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

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

        指令示例:

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

        <2> 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{條件}{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 指令(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中。



        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 类乌齐县| 大同市| 视频| 唐海县| 乌兰浩特市| 富锦市| 微博| 新源县| 丽水市| 新郑市| 洛阳市| 鄂伦春自治旗| 康保县| 黄山市| 石狮市| 射阳县| 阳高县| 阿勒泰市| 波密县| 三门峡市| 宁安市| 屯门区| 丰都县| 亳州市| 津南区| 米易县| 商城县| 博湖县| 蒙阴县| 迁西县| 青州市| 定西市| 根河市| 德州市| 礼泉县| 高台县| 扎赉特旗| 东台市| 准格尔旗| 东至县| 桓台县|