新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于匯編ARM指令DCD

關(guān)于匯編ARM指令DCD

作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
數(shù)據(jù)定義(DataDefinition)偽指令

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

本文引用地址:http://m.butianyuan.cn/article/201611/322059.htm

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

3、DCD(或DCDU)

語法格式:

標號DCD(或DCDU表達式

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

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

使用示例:

DataTestDCD4,5,6;分配一片連續(xù)的字存儲單元并初始化。

舉例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;保存任務(wù)的CPSR

MOVR2, LR;保存任務(wù)的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 這個語句給分配的空間的首地址,F(xiàn)iqStackSpace+ FIQ_Stack_Legth 是這個地址空間的結(jié)束地址,將FiqStack指向這個地址,當做棧的頂部,該棧向下生長,長度FIQ_Stack_Legth



關(guān)鍵詞: 匯編ARM指令DC

評論


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

關(guān)閉