新聞中心

ARM·匯編偽指令

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
ARM匯編程序中,有如下幾種偽指令
*符號(hào)定義偽指令
*數(shù)據(jù)定義偽指令
*匯編控制偽指令
*信息報(bào)告?zhèn)沃噶?/div>
*宏指令以及其他偽指令
【符號(hào)定義偽指令】
定義局部變量LCLA,LCLL,LCLS
定義全局變量GBLA,GBLL,GBLS
對(duì)變量賦值SETA,SETL,SETS

【數(shù)據(jù)定義偽指令】
DCB
DCW/DCWU
DCD/DCDU
DCQ/DCDU
DCFS/DCFSU
DCFD/DCFDU
SPACE
FIELD
MAP
*DCB 表達(dá)式 用于分配一片連續(xù)的字節(jié)
*DCW/DCWU 表達(dá)式 用于分配一片連續(xù)的半字
*DCD/DCDU 表達(dá)式 用于分配一篇連續(xù)的字
*DCQ/DCQU 表達(dá)式 用于分配連續(xù)的8個(gè)字節(jié)
*DCFD/DCFDU 表達(dá)式 用于為雙精度浮點(diǎn)數(shù)分配一片連續(xù)的字存儲(chǔ)單元
*DCFS/DCFSU 表達(dá)式 用于為單精度浮點(diǎn)數(shù)分配一片連續(xù)的字存儲(chǔ)單元
*SPACE 表達(dá)式 用于分配一片連續(xù)的存儲(chǔ)區(qū)域并初始化為0,表達(dá)式是要分配的字節(jié)數(shù)
*MAP FILED
MAP 定義一個(gè)結(jié)構(gòu)化的內(nèi)存表的首地址
[MAP 0x100, R0] 首地址0x100+R0
FILED 定義一個(gè)結(jié)構(gòu)化內(nèi)存表中的數(shù)據(jù)域
[MAP 0x30000000
A FILED 4
B FILED 4
C FILED 4]
【匯編控制偽指令】
*MACRO MEND 宏名
*IF···ELSE···ENDIF [ | ]
*WHILE····WEND
*NEXIT 從宏中退出
【一些其他的偽指令】
*ASSERT 邏輯表達(dá)式
必須滿足這一條件才可以進(jìn)行編譯
*ALIGN [表達(dá)式[,偏移量]]
AREA Init, CODE, READONLY, ALIGN=3
*AREA 段名 屬性
DATA 數(shù)據(jù)段 默認(rèn)READWRITE
CODE 代碼段 默認(rèn)READONLY
*NOINIT 內(nèi)存單元初始化0
*ALIGN
*COMMON 通用段(不包括數(shù)據(jù)段和代碼段)
*ENTRY
*END
*EQU (NUM EQU 100)(相當(dāng)于c語(yǔ)言中的#define)
*EXPORT 聲明一個(gè)全局變量
IMPORT IMPORT Main (引用Main變量,但Main不是在這個(gè)程序中定義的)
EXPORT 和IMPORT一樣,但是源文件中若沒(méi)有引用,則該標(biāo)號(hào)不會(huì)出現(xiàn)
*RN 給寄存器改名字
temp RN R0
*GET/INCLUDE (相當(dāng)于c語(yǔ)言中的include)
*INCBIN 文件名 (這個(gè)指令待程序中再做考慮)
INCBIN 2440test.bin
*NOP
【關(guān)于標(biāo)簽····】
【關(guān)于標(biāo)號(hào)····】
【c/c++以及匯編語(yǔ)言的混合編程】
使用內(nèi)嵌匯編器后,可以在c/c++源程序中直接使用大部分的ARM指令和Thumb指令
在ARM c語(yǔ)言程序中使用關(guān)鍵詞_asm來(lái)標(biāo)識(shí)一段匯編指令
_asm
{
intstruction[; instrucition]
····
[instruction]
}


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

評(píng)論


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

關(guān)閉