新聞中心

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

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

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

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

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

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

3、DCD(或DCDU)

語法格式:

標(biāo)號(hào)DCD(或DCDU表達(dá)式

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

DCD分配的字存儲(chǔ)單元是字對(duì)齊的,而用DCDU分配的字存儲(chǔ)單元并不嚴(yán)格字對(duì)齊。

使用示例:

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

舉例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是標(biāo)號(hào),相當(dāng)與地址,實(shí)際上就是在FiqStackSpace SPACE FIQ_Stack_Legth 這個(gè)語句給分配的空間的首地址,F(xiàn)iqStackSpace+ FIQ_Stack_Legth 是這個(gè)地址空間的結(jié)束地址,將FiqStack指向這個(gè)地址,當(dāng)做棧的頂部,該棧向下生長,長度FIQ_Stack_Legth



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

評(píng)論


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

關(guān)閉