ARM 汇编程序命令行参考
Microsoft ARM 汇编程序、armasm 和 armasm64 支持多个命令行选项。 默认情况下,armasm 将 ARMv7 Thumb 汇编语言组合到通用对象文件格式 (COFF) 的 Microsoft 实现中。 armasm64 汇编程序为 ARM64 和 ARM64EC 目标创建 COFF 对象代码。 链接器可以链接 ARM 汇编程序和 C/C++ 编译器生成的 COFF 代码对象。 它可以与文档管理程序创建的对象库链接在一起。
语法
armasm
[options] source_file object_file
armasm
[options] source_file
armasm64
[options] source_file object_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
filename
-e
filename
将错误和警告消息重定向到 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
。
- ARM - 将计算机类型设置为
-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
从 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