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