Директивы ассемблера ARM
Как правило, сборщик Microsoft ARM использует язык сборки ARM, который описан в справочном руководстве по armasm компилятора ARM. Однако реализации некоторых директив сборки Майкрософт отличаются от директив сборки ARM. В этой статье объясняется различия.
Реализация директив сборки ARM
AREA
Сборщик Microsoft ARM поддерживает следующие
AREA
атрибуты:ALIGN
,CODE
,CODEALIGN
DATA
,NOINIT
,READONLY
, ,READWRITE
THUMB
.ARM
Все, кроме
THUMB
иARM
работая как описано в руководстве по armasm компилятора ARM.В сборщике Microsoft ARM указывает,
THUMB
чтоCODE
раздел содержит код отпечатка и используется по умолчанию для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
.Синтаксис сборки позволяет указать настраиваемое соглашение о вызовах процедур: вы перечисляете регистры, которые являются вызывающими и сохраненными. Однако, хотя сборщик Microsoft ARM принимает синтаксис, он игнорирует списки регистров. Сведения об отладке, созданные сборщиком, поддерживают только соглашение о вызовах по умолчанию.
IMPORT
иEXTERN
.Задает импорт с помощью этого синтаксиса:
IMPORT
|EXTERN
symbol
{ }, TYPE
, WEAK
alias
t
}symbol
— имя импортируемого символа.Если
WEAK
alias
задано, это означает, чтоsymbol
это слабый внешний. Если определение для него не найдено во время ссылки, то все ссылки на него привязываютсяalias
вместо этого.Если
TYPE
t
задано, то указывает,t
как компоновщик должен попытаться устранитьsymbol
. Возможны следующие значенияt
:значение Description 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.
См. также
Справочник по командной строке ассемблера ARM
Диагностические сообщения ассемблера ARM