这是 yasm 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
yasm - Yasm 模块化汇编器
概要
亚斯姆 [-f 格式[-o 输出文件[other 选项...] {入档}
亚斯姆 -h
商品描述
Yasm Modular Assembler 是一个可移植的、可重定向的汇编器,以“新”
(2 或 3 条)BSD 许可证。 Yasm 目前支持 x86 和 AMD64 指令集,
接受 NASM 和 GAS 汇编器语法,输出二进制、ELF32、ELF64、COFF、Win32 和
Win64 对象格式,并在 STABS、DWARF 2 和
CodeView 8 格式。
YASM 由 亚斯姆 命令、libyasm、核心后端库和大量
的模块。 目前,libyasm 和可加载模块是静态构建在 亚斯姆
可执行文件。
- 亚斯姆 命令组装文件 infile 并将输出定向到文件 输出文件 if
指定的。 如果 输出文件 没有指定, 亚斯姆 将从中派生一个默认的输出文件名
其输入文件的名称,通常通过附加 .o 或 .obj,或通过删除所有扩展名
对于原始二进制文件。 否则,输出文件名将是 yasm.out。
如果用一个 入档 的 ”-”, 亚斯姆 组装标准输入并将输出定向到
文件 输出文件, 或者 yasm.out 如果没有 输出文件 已指定。
配置
许多选项可以以两种形式之一给出:破折号后跟单个字母,
或两个破折号后跟一个长选项名称。 选项按字母顺序列出。
一般用途总体评估 可选项
-a 拱 or --拱门=拱: 选择目标架构
选择目标架构。 默认架构是“x86”,它支持
IA-32 及其衍生产品和 AMD64 指令集。 打印一个列表
标准输出的可用架构,使用“帮助”作为 拱。 看 yasm_arch(7) 对于一个
支持的架构列表。
-f 格式 or --o格式=格式: 选择对象格式
选择输出对象格式。 默认的对象格式是“bin”,它是一个扁平的
格式化二进制文件,无需重定位。 将可用对象格式列表打印到
标准输出,使用“帮助”作为 格式。 看 yasm_objfmts(7) 支持列表
对象格式。
-g 调试 or --d格式=调试: 选择调试格式
选择调试信息的调试格式。 可以使用调试信息
通过调试器将可执行代码关联回源文件或获取数据
结构和类型信息。 可用的调试格式因不同的对象而异
格式; 亚斯姆 选择无效组合时会出错。 默认对象
格式由对象格式选择。 打印可用调试列表
格式到标准输出,使用“帮助”作为 调试。 看 yasm_dbgfmts(7) 清单
支持的调试格式。
-L 名单 or --l格式=名单: 选择列表文件格式
选择输出列表文件的格式/样式。 列表文件通常混合
带有汇编器生成的机器代码的原始源代码。 默认列表
格式是“nasm”,它模仿了 NASM 列表文件格式。 打印可用列表
列出文件格式到标准输出,使用“帮助”作为 名单.
-l 列表文件 or --列表=列表文件: 指定列表文件名
指定输出列表文件的名称。 如果不使用此选项,则没有列表文件
生成。
-m or --机器= : 选择目标机器架构
选择目标机器架构。 本质上是所选的子类型
架构,机器类型在架构的主要子集之间进行选择。 为了
例如,对于“x86”架构,可用的两台机器是“x86”,即
用于 IA-32 和衍生 32 位指令集,以及“amd64”,用于
对于 64 位指令集。 这种微分是产生
用于可重定位对象格式(例如 COFF 和 ELF)的正确对象文件。 打印一个
给定架构的可用机器列表到标准输出,使用“帮助”作为
和给定的架构使用 -a 拱。 看 yasm_arch(7) 了解更多详情。
-o 文件名 or --obj文件=文件名: 指定目标文件名
指定输出文件的名称,覆盖 Yasm 生成的任何默认名称。
-p 解析器 or --解析器=解析器: 选择解析器
选择解析器(汇编器语法)。 默认解析器是“nasm”,它
模拟网络汇编器 NASM 的语法。 另一个可用的解析器是“gas”,
它模拟了 GNU AS 的语法。 将可用解析器列表打印为标准
输出,使用“帮助”作为 解析器。 看 yasm_parsers(7) 支持的解析器列表。
-r 预处理 or --preproc=预处理: 选择预处理器
在将输入文件传递给解析器之前选择要在输入文件上使用的预处理器。
预处理器通常提供未包含在主程序中的宏功能
解析器。 默认的预处理器是“nasm”,它是实际的导入版本
NASM 预处理器。 “原始”预处理器也可用,它只是跳过
预处理步骤,将输入文件直接传递给解析器。 打印一个列表
标准输出可用的预处理器,使用“帮助”作为 预处理.
-h or - 帮帮我: 打印选项摘要
打印调用选项的摘要。 所有其他选项都被忽略,并且没有输出
文件生成。
- 版: 获取 Yasm 版本
此选项会导致 Yasm 打印 Yasm 的版本号以及许可证
总结到标准输出。 所有其他选项都被忽略,并且没有输出文件
产生。
警告 可选项
-W 选项有两种相反的形式: -W姓名 和 -没有-姓名. 只有非默认形式是
显示在这里。
警告选项按命令行上给出的顺序处理,因此如果 -w is
其次是 -Worphan-标签, 关闭所有警告 除 对于孤儿标签。
-w: 禁止所有警告信息
此选项会导致 Yasm 禁止所有警告消息。 如上所述,这
选项后面可以跟其他选项以重新启用指定的警告。
-错误: 将警告视为错误
此选项会导致 Yasm 将所有警告视为错误。 通常警告不会
防止生成目标文件并且不会导致失败退出状态
在 亚斯姆,而错误会。 此选项使警告等同于错误
这种行为。
-Wno-无法识别的字符: 不要对无法识别的输入字符发出警告
导致 Yasm 不对输入中发现的无法识别的字符发出警告。 通常 Yasm
将为在输入文件中找到的任何非 ASCII 字符生成警告。
-Worphan-标签:警告缺少尾随选项的标签
当使用与 NASM 兼容的解析器时,导致 Yasm 警告单独发现的标签
没有尾随冒号的一行。 虽然这些是 NASM 语法中的合法标签,但它们可能
由于拼写错误或宏定义顺序,是无意的。
-X 样式:更改错误/警告报告样式
为错误和警告消息选择特定的输出样式。 默认为“gnu”
风格,模仿输出 GCC. “vc”样式也可用,它模仿
Microsoft 的 Visual C++ 编译器的输出。
此选项可用,以便 Yasm 更自然地集成到 IDE 环境中
例如 Visual Studio 或 Emacs,允许 IDE 正确识别
错误/警告消息,并链接回有问题的源代码行。
预处理器 可选项
虽然这些预处理器选项理论上会影响任何预处理器,但唯一的
目前 Yasm 中的预处理器是“nasm”预处理器。
-D 宏[=值]: 预定义一个宏
预定义单行宏。 该值是可选的(如果没有给出值,则
宏仍然定义,但为空值)。
-e or --仅预过程: 仅预处理
预处理阶段后停止组装; 预处理的输出被发送到
指定的输出名称,如果未指定输出名称,则为标准输出。 不
生成目标文件。
-I 径: 添加包含文件路径
添加目录 径 到包含文件的搜索路径。 搜索路径默认为
只包括源文件所在的目录。
-P 文件名: 预先包含一个文件
预包含文件 文件名,让它看起来好像 文件名 被添加到
输入。 可用于预先添加多行宏 -D 不能支持。
-U 宏: 取消定义宏
取消定义单行宏(可以是内置宏或之前定义的宏)
在命令行中 -D.
示例
组装 NASM 语法,32 位 x86 源 source.asm 到 ELF 文件 source.o,警告
孤儿标签:
yasm -f elf32 -Worphan-标签 source.asm
将 NASM 语法 AMD64 源 x.asm 组装到 Win64 文件 object.obj 中:
yasm -f win64 -o object.obj x.asm
将已经预处理过的 NASM 语法 x86 源代码 y.asm 组装成平面二进制文件 y.com:
yasm -f bin -r raw -o y.com y.asm
诊断
- 亚斯姆 命令在成功时退出 0,如果发生错误则非零。
兼容性
Yasm 的 NASM 解析器和预处理器,同时它们努力尽可能地兼容
由于 YASM 的内部结构不同,与 NASM 有一些不兼容。
Yasm 的 GAS 解析器和预处理器缺少 GNU AS 中存在的许多功能。
限制
由于目标文件通常依赖于体系结构和机器,因此并非所有的组合
对象格式、架构和机器是合法的; 试图使用无效的
组合将导致错误。
不支持符号映射。
使用 onworks.net 服务在线使用 yasm