ARM 組合程式指示詞
一般而言,Microsoft ARM 組合器會使用ARM元件語言,該語言記載於 ARM編譯程式armasm參考指南中。 不過,某些元件指示詞Microsoft實作與ARM元件指示詞不同。 本文說明差異。
ARM 元件指示詞Microsoft實作
AREA
Microsoft ARM 組合器支援下列屬性:、、、
CODE
READONLY
CODEALIGN
NOINIT
DATA
、、ARM
THUMB
ALIGN
AREA
READWRITE
除了 和
ARM
以外的所有專案THUMB
,如ARM編譯程式armasm參考指南中所述。在 Microsoft ARM 組合器中,
THUMB
指出CODE
區段包含 Thumb 程式代碼,而且是CODE
區段的預設值。ARM
表示區段包含 ARM 程式代碼。ATTR
不支援。
CODE16
不支援,因為它表示預先UAL Thumb語法,Microsoft ARM 組合器不允許。
THUMB
請改用 指示詞以及 UAL 語法。COMMON
不支援通用區域的對齊規格。
DCDO
不支援。
DN
、 、QN
SN
不支援註冊別名上的類型或車道規格。
ENTRY
不支援。
EQU
不支援定義符號的類型規格。
EXPORT
和GLOBAL
使用下列語法指定匯出:
EXPORT
|GLOBAL
symbol
{[type]
}symbol
是要導出的符號。[type]
如果指定,則可以[DATA]
表示符號指向數據,或[FUNC]
表示符號指向程序代碼。GLOBAL
與EXPORT
同義。EXPORTAS
不支援。
FRAME
不支援。
FUNCTION
和PROC
元件語法可讓您在程式上指定自定義呼叫慣例:您可以列出呼叫端-save 的緩存器,以及被呼叫者儲存的緩存器。 不過,雖然Microsoft ARM 組合器接受語法,但它會忽略緩存器清單。 組合器所產生的偵錯資訊僅支援預設呼叫慣例。
IMPORT
和EXTERN
使用下列語法指定匯入:
IMPORT
|EXTERN
symbol
{ {, TYPE
, WEAK
alias
t
}}symbol
是要匯入之符號的名稱。如果
WEAK
alias
指定 ,則表示是symbol
弱式外部。 如果在連結時找不到其定義,則所有對它的參考都會繫結至alias
。如果
TYPE
t
指定 ,則t
表示連結器應該如何嘗試解析symbol
。 的這些值t
是可能的:值 名稱 1 請勿搜尋的連結 symbol
庫。2 搜尋的連結 symbol
庫。3 symbol
是的alias
別名(預設值)。EXTERN
是 的IMPORT
同義字,但symbol
只有在目前元件中有參考時才會匯入。MACRO
不支援使用變數來保存巨集的條件代碼。 不支援巨集參數的預設值。
NOFP
不支援。
OPT
、 、TTL
SUBT
不支援,因為Microsoft ARM 組合器不會產生清單。
PRESERVE8
不支援。
RELOC
RELOC n
只能遵循指示或數據定義指示詞。 沒有可以重新放置的「匿名符號」。REQUIRE
不支援。
REQUIRE8
不支援。
THUMBX
不支援,因為Microsoft ARM 組合器不支援 Thumb-2EE 指令集。