Поделиться через


Директивы ассемблера ARM

Как правило, сборщик Microsoft ARM использует язык сборки ARM, который описан в справочном руководстве по armasm компилятора ARM. Однако реализации некоторых директив сборки Майкрософт отличаются от директив сборки ARM. В этой статье объясняется различия.

Реализация директив сборки ARM

  • AREA

    Сборщик Microsoft ARM поддерживает следующие AREA атрибуты: ALIGN, CODE, CODEALIGNDATA, NOINIT, READONLY, , READWRITETHUMB. ARM

    Все, кроме THUMB и ARM работая как описано в руководстве по armasm компилятора ARM.

    В сборщике Microsoft ARM указывает, THUMB что CODE раздел содержит код отпечатка и используется по умолчанию для CODE разделов. ARM указывает, что раздел содержит код ARM.

  • ATTR

    Не поддерживается.

  • CODE16

    Не поддерживается, так как он подразумевает синтаксис предварительного UAL Thumb, который не допускается сборщиком Microsoft ARM. Используйте вместо этого директиву THUMB вместе с синтаксисом UAL.

  • COMMON

    Спецификация выравнивания для общего региона не поддерживается.

  • DCDO

    Не поддерживается.

  • DN, , QNSN

    Спецификация типа или полосы в псевдониме регистра не поддерживается.

  • ENTRY

    Не поддерживается.

  • EQU

    Спецификация типа для определенного символа не поддерживается.

  • EXPORT и GLOBAL.

    Указывает экспорт с помощью этого синтаксиса:

    EXPORT|GLOBALsymbol{[type]}

    symbol — это символ для экспорта. [type]При указании можно [DATA] указать, что символ указывает на данные или [FUNC] указывает, что символ указывает на код. GLOBAL — синоним EXPORT.

  • EXPORTAS

    Не поддерживается.

  • FRAME

    Не поддерживается.

  • FUNCTION и PROC.

    Синтаксис сборки позволяет указать настраиваемое соглашение о вызовах процедур: вы перечисляете регистры, которые являются вызывающими и сохраненными. Однако, хотя сборщик Microsoft ARM принимает синтаксис, он игнорирует списки регистров. Сведения об отладке, созданные сборщиком, поддерживают только соглашение о вызовах по умолчанию.

  • IMPORT и EXTERN.

    Задает импорт с помощью этого синтаксиса:

    IMPORT|EXTERNsymbol{ }, TYPE, WEAKaliast}

    symbol — имя импортируемого символа.

    Если WEAK alias задано, это означает, что symbol это слабый внешний. Если определение для него не найдено во время ссылки, то все ссылки на него привязываются aliasвместо этого.

    Если TYPE t задано, то указывает, t как компоновщик должен попытаться устранить symbol. Возможны следующие значения t :

    значение Description
    1 Не искать библиотеки symbol.
    2 Поиск библиотек для symbol.
    3 symbol — это псевдоним ( alias по умолчанию).

    EXTERN является синонимом IMPORT, за исключением symbol импортируемого только в том случае, если в текущей сборке есть ссылки.

  • MACRO

    Использование переменной для хранения кода условия макроса не поддерживается. Значения по умолчанию для параметров макроса не поддерживаются.

  • NOFP

    Не поддерживается.

  • OPT, , TTLSUBT

    Не поддерживается, так как сборщик Microsoft ARM не создает списки.

  • PRESERVE8

    Не поддерживается.

  • RELOC

    RELOC n может следовать только инструкции или директиве определения данных. Нет "анонимного символа", который можно переместить.

  • REQUIRE

    Не поддерживается.

  • REQUIRE8

    Не поддерживается.

  • THUMBX

    Не поддерживается, так как сборщик Microsoft ARM не поддерживает набор инструкций Thumb-2EE.

См. также

Справочник по командной строке ассемблера ARM
Диагностические сообщения ассемблера ARM