新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于匯編ARM指令DCD

        關于匯編ARM指令DCD

        作者: 時間:2016-11-26 來源:網絡 收藏
        數據定義(DataDefinition)偽指令

        數據定義偽指令一般用于為特定的數據分配存儲單元,同時可完成已分配存儲單元的初始化。

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

        DCDDCDU用于分配一片連續的字存儲單元并用指定的數據初始化。

        3、DCD(或DCDU)

        語法格式:

        標號DCD(或DCDU表達式

        DCD(或DCDU)偽指令用于分配一片連續的字存儲單元并用偽指令中指定的表達式初始化。其中,表達式可以為程序標號或數字表達式。DCD也可用&代替。

        DCD分配的字存儲單元是字對齊的,而用DCDU分配的字存儲單元并不嚴格字對齊。

        使用示例:

        DataTestDCD456;分配一片連續的字存儲單元并初始化。

        舉例1:

        SwiFunction
        DCDTASK_SW;0
        DCDENTER_CRITICAL;1
        DCDEXIT_CRITICAL;2
        DCDISRBegin;3
        DCDChangeToSYSMode;4
        DCDChangeToUSRMode;5
        DCD__OSStartHighRdy;6
        DCDTaskIsARM;7
        DCDTaskIsTHUMB;8
        DCDOSISRNeedSwap;9
        DCDGetOSFunctionAddr;10
        DCDGetUsrFunctionAddr;11

        TASK_SW
        MRSR3, SPSR;保存任務的CPSR

        MOVR2, LR;保存任務的PC

        舉例2:

        語句如下:
        FiqStackSpace SPACE FIQ_Stack_Legth
        FiqStack DCD FiqStackSpace + FIQ_Stack_Legth

        最后一條語句,DCD的后面跟FiqStackSpace + FIQ_Stack_Legth,
        DCD后面的FiqStackSpace,表示一串空字符,這好理解
        但是再上FIQ_Stack_Legth,就不明白了,WHY?

        FiqStackSpace是標號,相當與地址,實際上就是在FiqStackSpace SPACE FIQ_Stack_Legth 這個語句給分配的空間的首地址,FiqStackSpace+ FIQ_Stack_Legth 是這個地址空間的結束地址,將FiqStack指向這個地址,當做棧的頂部,該棧向下生長,長度FIQ_Stack_Legth



        關鍵詞: 匯編ARM指令DC

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临高县| 拉萨市| 崇文区| 棋牌| 拉孜县| 弋阳县| 闻喜县| 五常市| 阿拉善左旗| 新闻| 吐鲁番市| 永善县| 阳朔县| 阳泉市| 石楼县| 朔州市| 神木县| 长沙县| 穆棱市| 鹰潭市| 凉城县| 巴南区| 威海市| 哈巴河县| 龙州县| 晋州市| 桑日县| 山西省| 金堂县| 板桥市| 逊克县| 新干县| 聂荣县| 太保市| 阿城市| 东平县| 鹤峰县| 茌平县| 内黄县| 昌邑市| 丰城市|