ARM 汇编程序命令行参考

2026-01-01 16:08:25 / 攻略指南

Microsoft ARM 汇编程序、armasm 和 armasm64 支持多个命令行选项。 默认情况下,armasm 将 ARMv7 Thumb 汇编语言组合到通用对象文件格式 (COFF) 的 Microsoft 实现中。 armasm64 汇编程序为 ARM64 和 ARM64EC 目标创建 COFF 对象代码。 链接器可以链接 ARM 汇编程序和 MSVC 编译器生成的 COFF 代码对象。 它可以与文档管理程序创建的对象库链接在一起。

语法

armasm [options] source_fileobject_file

armasm [options] source_file

armasm64 [options] source_fileobject_file

armasm64 [options] source_file

参数

options

零个或零个以上下列选项的组合:

-16

仅在 armasm 中可用。 将源汇编为 16 位 Thumb 指令。 此选项为默认值。

-32

仅在 armasm 中可用。 将源汇编为 32 位 ARM 指令。

-coff_thumb2_only

仅在 armasm 中可用。 仅允许 Thumb-2 代码。

-errorReport:

选择

此选项已弃用。 在 Windows Vista 及更高版本中,错误报告由 Windows 错误报告 (WER) 设置控制。

-errors

文件名

-e

文件名

将错误和警告消息重定向到 filename。 默认情况下,这些消息发送到 stdout。

-funcOverride:

function_name

仅在 armasm64 中可用。 发出重写对 function_name 的支持的函数。

-g

生成调试信息。

-gh:SHA1

使用 SHA-1 加密哈希算法在调试信息中生成每个源文件的校验和。 重写 -gh:SHA256。

-gh:SHA256

使用 SHA-256 加密哈希算法在调试信息中生成每个源文件的校验和。 此选项在 Visual Studio 2022 版本 17.0 及更高版本中默认启用。

-guard:ehcont[-]

为二进制文件生成所有有效异常处理延续目标的相对虚拟地址 (RVA) 的排序列表。 它在运行时用于 NtContinue 和 SetThreadContext 指令指针验证。 默认情况下,-guard:ehcont 处于关闭状态,必须显式启用。 若要显式禁用此选项,请使用 -guard:ehcont-。 此选项在 Visual Studio 2019 版本 16.7 及更高版本中可用。 64 位操作系统上的 64 位进程支持该功能。

-help

-h

输出命令行帮助消息。

-i

dir[;dir]

将一个或多个指定目录添加到 include 搜索路径。 使用分号 (;) 分隔目录。

-ignore

warning_number

禁用指定的警告编号。 有关可能的值,请参阅 ARM 汇编程序诊断消息。

-list

list_file

创建生成的汇编语言的详细列表,将其列到 list_file 中。 list_file 参数是可选的。 如果省略它,汇编程序会将 .lst 追加到 source_file 的基名称以创建列表文件。

-machine

机器

指定要在 PE 头中设置的计算机类型。 在 armasm 中,machine 的可能值为:

ARM - 将计算机类型设置为 IMAGE_FILE_MACHINE_ARMNT。 此选项为默认值。

THUMB - 将计算机类型设置为 IMAGE_FILE_MACHINE_THUMB。

在 armasm64 中,可能的值为:

ARM64 - 将计算机类型设置为 IMAGE_FILE_MACHINE_ARM64。 此选项为默认值。

ARM64EC - 将计算机类型设置为 IMAGE_FILE_MACHINE_ARM64EC。

-noesc

-noe

忽略 C 样式转义特殊字符,例如 \n 或 \t。

-nologo

禁止显示版权横幅。

-nowarn

-now

禁用所有警告消息。

-o

object_file

指定对象(输出)文件的名称。

-o 选项是可选的;你可以改将对象文件名指定为命令行的最后一个元素。

-oldit

仅在 armasm 中可用。 生成 ARMv7 样式的 IT 块。 默认情况下,会生成与 ARMv8 兼容的 IT 块。

-predefine

命令

-pd

命令

指定 SETA、SETL 或 SETS 指令来预定义符号。

示例: armasm.exe -predefine "COUNT SETA 150" source.asm

有关详细信息,请参阅 ARM 编译器 armasm 参考指南。

-sourcelink:

sourcelink_filename

sourcelink_filename 指定 JSON 格式的配置文件,其中包含从本地文件路径到 URL 的简单映射,以便源文件显示在调试程序中。 有关此文件的格式的详细信息,请参阅源链接 JSON 架构。 源链接是一个与语言和源代码管理无关的系统,用于为二进制文件提供源调试。 从 Visual Studio 2017 版本 15.8 开始,原生二进制文件支持源链接。 有关源链接的概述,请参阅源链接。 若要了解如何在项目中使用源链接以及如何在项目中生成 SourceLink 文件,请参阅使用源链接。

-via

文件名

从 filename 读取额外的命令行参数。

source_file

源文件名。

object_file

命令行的最后一个元素可以指定对象(输出)文件的名称。 如果省略它,并且未指定 -o 选项,则汇编程序会将 .obj 追加到 source_file 的基名称以创建对象文件。

备注

以下示例演示如何在典型方案中使用 armasm。 首先,使用 armasm 将汇编语言源 (.asm) 文件生成到对象 (.obj) 文件中。 然后,使用 CL 命令行 C 编译器编译源 (.c) 文件,并指定链接器选项来链接 ARM 对象文件。

armasm -o myasmcode.obj myasmcode.asm

cl myccode.c /link myasmcode.obj

另请参阅

ARM 汇编程序诊断消息

ARM 汇编程序指令