ARM匯編器所支持的偽指令
?。?)DCD(ii DCDU)
標(biāo)號(hào) DCD (或DCDU) 表達(dá)式
DCD(或DCDU)偽指令用于分配一片連續(xù)的字存儲(chǔ)單元,并用偽指令中指定的表達(dá)式初始化。其中,表達(dá)式可以為程序標(biāo)號(hào)或數(shù)字表達(dá)式。DOD也可用“&”代替。
用DOD分配的字存儲(chǔ)單元是字對(duì)齊的,而用DCDU分配的字存儲(chǔ)單元并不嚴(yán)格要求字對(duì)齊。
?。?)DCFD(或DCFDU)
標(biāo)號(hào) DCFD (或DCFDU) 表達(dá)式
DCFD(或DCFDU)偽指令用于為雙精度的浮點(diǎn)數(shù)分配一片連續(xù)的字存儲(chǔ)單元,并用偽指令中指定的表達(dá)式初始化。每個(gè)雙精度的浮點(diǎn)數(shù)占據(jù)兩個(gè)字單元。
用DCFD分配的字存儲(chǔ)單元是字對(duì)齊的,而用DCFDU分配的字存儲(chǔ)單元并不嚴(yán)格要求字對(duì)齊。
?。?)DCFS(再戈DCFSU)
標(biāo)號(hào) DCFS (或DCFSU) 表達(dá)式
DCFS(或DCFSU)偽指令用于為單精度的浮點(diǎn)數(shù)分配一片連續(xù)的字存儲(chǔ)單元,并用偽指令中指定的表達(dá)式初始化。每個(gè)單精度的浮點(diǎn)數(shù)占據(jù)一個(gè)字單元。
用DCFS分配的字存儲(chǔ)單元是字對(duì)齊的,而用DCFSU分配的字存儲(chǔ)單元并不嚴(yán)格要求字對(duì)齊。
?。?)DCQ(或DCQU)
標(biāo)號(hào) DCQ (或DCQU) 表達(dá)式
DCQ(或DCQU)偽指令用于分配一片以8個(gè)字節(jié)為單位的連續(xù)存儲(chǔ)區(qū)域,并用偽指令中指定的表達(dá)式初始化。
用DCQ分配的存儲(chǔ)單元是字對(duì)齊的,而用DCQU分配的存儲(chǔ)單元并不嚴(yán)格要求字對(duì)齊。
?。?)SPACE
標(biāo)號(hào) SPACE 表達(dá)式
SPACE偽指令用于分配一片連續(xù)的存儲(chǔ)區(qū)域并初始化為0。其中,表達(dá)式為要分配的字節(jié)數(shù)。SPACE也可用“%”代替。
?。?)MAP
MAP 表達(dá)式〔,基址寄存器)
MAP偽指令用于定義一個(gè)結(jié)構(gòu)化的內(nèi)存表的首地址。MAP也可用“^”代替。
表達(dá)式可以為程序中的標(biāo)號(hào)或數(shù)學(xué)表達(dá)式,基址寄存器為可選項(xiàng),當(dāng)基址寄存器選項(xiàng)不存在時(shí),表達(dá)式的值即為內(nèi)存表的首地址;當(dāng)該選項(xiàng)存在時(shí),內(nèi)存表的首地址為表達(dá)式的值與基址寄存器的和。
MAP偽指令通常與FIELD偽指令配合使用來定義結(jié)構(gòu)化的內(nèi)存表。
?。?)FILED
標(biāo)號(hào) FIELD 表達(dá)式
FIELD偽指令用于定義一個(gè)結(jié)構(gòu)化內(nèi)存表中的數(shù)據(jù)域。FILED也可用“?!贝?。表
達(dá)式的值為當(dāng)前數(shù)據(jù)域在內(nèi)存表中所占的字節(jié)數(shù)。
FIELD偽指令常與MAP偽指令配合使用來定義結(jié)構(gòu)化的內(nèi)存表。MAP偽指令定義內(nèi)存表的首地址,F(xiàn)IELD偽指令定義內(nèi)存表中的各個(gè)數(shù)據(jù)域,并可以為每個(gè)數(shù)據(jù)域指定一個(gè)標(biāo)號(hào)供其他的指令引用。
注意:MAP和FIELD偽指令僅用于定義數(shù)據(jù)結(jié)構(gòu),并不實(shí)際分配存儲(chǔ)單元。
3.匯編控制(Assembly Control)偽指令
匯編控制偽指令用于控制匯編程序的執(zhí)行流程,常用的匯編控制偽指令包括以下幾種。
?。?)IF、 ELSE、 ENDIF
IF 邏輯表達(dá)式
指令序列1
ELSE
指令序列2 ·
ENDTF
r、ELSE、ENDIF偽指令能根據(jù)條件的成立與否決定是否執(zhí)行某個(gè)指令序列。當(dāng)r后面的邏輯表達(dá)式為真時(shí),則執(zhí)行指令序列1,否則執(zhí)行指令序列2。其中,ELSE及指令序列2可以沒有,此時(shí),當(dāng)IF后面的邏輯表達(dá)式為真時(shí),則執(zhí)行指令序列1,否則繼續(xù)執(zhí)行后面的指令。
IF、ELSE、ENDIF偽指令可以嵌套使用。
?。?)WHILE、WEND
WHILE 邏輯表達(dá)式
指令序列
IATPhTn
WHILE、WEND偽指令能根據(jù)條件的成立與否決定是否循環(huán)執(zhí)行某個(gè)指令序列。當(dāng)WHILE后面的邏輯表達(dá)式為真時(shí),則執(zhí)行指令序列,該指令序列執(zhí)行完畢后,再判斷邏輯表達(dá)式的值,若為真則繼續(xù)執(zhí)行,一直到邏輯表達(dá)式的值為假。
評(píng)論