ARM 汇编程序指令

通常,Microsoft ARM 汇编程序使用 ARM 程序集语言,该语言记录在 ARM 编译器 armasm 参考指南中。 但是,某些程序集指令的 Microsoft 实现不同于 ARM 程序集指令。 本文介绍了差异。

ARM 程序集指令的 Microsoft 实现

  • AREA

    Microsoft ARM 汇编程序支持以下 AREA 属性:ALIGNCODECODEALIGNDATANOINITREADONLYREADWRITETHUMBARM

    THUMBARM 以外,所有属性都按照 ARM 编译器 armasm 参考指南中记录的那样工作。

    在 Microsoft ARM 汇编程序中,THUMB 指示分区 CODE 包含 Thumb 代码,并且是分区 CODE 的默认值。 ARM 指示分区包含 ARM 代码。

  • ATTR

    不支持。

  • CODE16

    不支持,因为它表示 Microsoft ARM 汇编程序不允许的预 UAL Thumb 语法。 请改用 THUMB 指令以及 UAL 语法。

  • COMMON

    不支持通用区域的对齐规范。

  • DCDO

    不支持。

  • DN, QN, SN

    不支持注册别名上的类型或通道规范。

  • ENTRY

    不支持。

  • EQU

    不支持定义符号的类型规范。

  • EXPORTGLOBAL

    使用此语法指定导出:

    EXPORT|GLOBALsymbol{[type]}

    symbol 是要导出的符号。 如果指定,[type] 可以是 [DATA] 或者 [FUNC],前者表示符号指向数据,后者表示符号指向代码。 GLOBALEXPORT的同义词。

  • EXPORTAS

    不支持。

  • FRAME

    不支持。

  • FUNCTIONPROC

    程序集语法允许在过程上指定自定义调用约定:列出调用方保存的寄存器,以及被调用方保存的寄存器。 但是,虽然 Microsoft ARM 汇编程序接受语法,但它会忽略寄存器列表。 汇编程序生成的调试信息仅支持默认调用约定。

  • IMPORTEXTERN

    使用此语法指定导入:

    IMPORT|EXTERNsymbol{, WEAKalias{, TYPEt}}

    symbol 是要导入的符号的名称。

    如果指定 WEAKalias,则表示 symbol 是弱外部。 如果在链接时找不到它的定义,则对其的所有引用将绑定到 alias

    如果指定 TYPEt,则 t 指示链接器应如何尝试解析 symbolt 可能具有以下值:

    说明
    1 不要搜索 symbol 的库。
    2 搜索 symbol 的库。
    3 symbolalias 的别名(默认)。

    EXTERNIMPORT 的同义词,仅当当前程序集中引用它时才导入 symbol

  • MACRO

    不支持使用变量来保存宏的条件代码。 不支持宏参数的默认值。

  • NOFP

    不支持。

  • OPT, TTL, SUBT

    不支持,因为 Microsoft ARM 汇编程序不生成列表。

  • PRESERVE8

    不支持。

  • RELOC

    RELOC n 只能遵循指令或数据定义指令。 没有可以重新定位的“匿名符号”。

  • REQUIRE

    不支持。

  • REQUIRE8

    不支持。

  • THUMBX

    不支持,因为 Microsoft ARM 汇编程序不支持 Thumb-2EE 指令集。

另请参阅

ARM 汇编程序命令行参考
ARM 汇编程序诊断消息