这是 nasm 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
nasm - Netwide Assembler,一个便携式 80x86 汇编器
概要
NASM [-@ 响应文件] [-f 格式] [-o 输出文件] [-l 列表文件] [选项...] 文档名称
商品描述
这个 NASM 命令汇编文件 文件名 并将输出定向到文件 输出文件 if
指定的。 如果 输出文件 没有指定, NASM 将从中派生一个默认的输出文件名
其输入文件的名称,通常通过附加“.o”或“.obj”,或通过删除所有
原始二进制文件的扩展名。 否则,输出文件名将是“nasm.out”。
配置
-@ 文件名
原因 NASM 处理来自文件名的选项,就好像它们包含在命令中一样
线。
-a
原因 NASM 在不首先应用宏的情况下组装给定的输入文件
预处理器。
-D|-d 宏[=值]
预定义单行宏。
-E|-e
原因 NASM 预处理给定的输入文件,并将输出写入 标准输出 (或
指定的输出文件名),而不是实际组装任何东西。
-f 格式
指定输出文件格式。 要查看有效输出格式的列表,请使用 -高频
选项。
-F 格式
指定调试信息格式。 要查看有效输出格式的列表,请使用
-y 选项(例如 -感觉 -y).
-g
原因 NASM 以选定格式生成调试信息。
-h
原因 NASM 在给出其调用选项的摘要后立即退出。
-高频
与...一样 -h , 但也列出了所有有效的输出格式。
-I|-i 目录
将目录添加到包含文件的搜索路径。 目录规范
必须包括尾部斜杠,因为它将直接添加到名称的前面
包含文件。
-l 列表文件
导致程序集列表被定向到给定的文件,其中原始
源显示在右侧(加上包含文件的源和
多行宏的扩展),生成的代码以十六进制显示在左侧。
-M
原因 NASM 将 Makefile 样式的依赖项输出到标准输出; 正常输出是
压制。
-MG 文件
与...一样 -M 但假设丢失的 Makefile 依赖项已生成并添加到
没有前缀的依赖列表。
-MF 文件
将 Makefile 样式的依赖项输出到指定的文件。
-医学博士 文件
与组合相同 -M 和 -MF 选项。
-公吨 文件
覆盖依赖目标依赖目标名称的默认名称。 这是
通常与输出文件名相同,由 -o 选项。
-MQ 文件
与...相同 -公吨 除了它试图引用具有特殊含义的字符
生成文件语法。 这并非万无一失,因为并非所有具有特殊含义的字符都是
可在 Make 中引用。
-MP
发射虚假目标。
-O 数
优化分支偏移。
· -氧气: 没有优化
· -氧气: 最小优化
· -牛:多通道优化(默认)
-o 输出文件
指定输出文件的精确名称,覆盖 NASM的默认方法
确定它。
-P|-p 文件
在主源文件开始之前,指定要预先包含的文件
处理。
-s
原因 NASM 将其错误消息和/或帮助文本发送到 stdout 而不是 stderr。
-t
原因 NASM 以 SciTech TASM 兼容模式组装。
-U|-u 宏
取消定义单行宏。
-v
原因 NASM 显示其版本号后立即退出。
*-W[no-]foo'
原因 NASM 启用或禁用某些类别的警告消息,在 gcc 中
风格,例如 -Worphan-标签 or -没有孤儿标签.
-w[+-]富
原因 NASM 启用或禁用某些类别的警告消息,例如
-w+孤儿标签 or -w-宏参数.
-X 格式
指定错误报告格式(gnu 或 vc)。
-y
原因 NASM 列出支持的调试格式。
-Z 文件名
原因 NASM 将错误消息重定向到 文件名. 此选项的存在是为了支持
stderr 不易重定向的操作系统。
--前缀,--后缀
将给定的参数(分别)前置或附加到所有全局或外部变量。
句法
这个手册页没有完全描述 NASM的汇编语言,但确实
总结一下与其他汇编器的区别。
寄存器 没有前导 '%' 符号,不像 气, 浮点堆栈寄存器是
称为是 st0, st1,等等。
浮点 说明 可以使用单操作数形式或双操作数形式。 一种 TO
提供关键字; 因此,一个人可以写
时尚 st0,st1
时尚 st1,st0
或者可以使用替代的单操作数形式
时尚 st1
流行到 st1
未初始化 存储 保留使用 资源局, 回滚, 静电放电, 要求, REST的 和 雷索
伪操作码,每个都有一个参数,给出字节数、字数、
要保留的双字、四字或十字节字。
重复 数据项不是由 DUP 在 DOS 汇编程序中看到的关键字,但由
使用 TIMES 前缀,像这样:
消息:时间 3 db 'abc'
次 64-$+message db 0
它定义了字符串 abcabcabc,后跟正确数量的零字节以使
总长度可达 64 字节。
图形符号 引用 总是被理解为立即数(即符号的地址),
除非使用方括号,在这种情况下,内存位置的内容是
用过的。 因此:
mov ax,wordvar
用变量 wordvar 的地址加载 AX,而
mov 斧头,[wordvar]
mov ax,[wordvar+1]
mov ax,[es:wordvar+bx]
都参考 Contents 内存位置。 语法
mov ax,es:wordvar[bx]
es mov ax,wordvar[1]
根本不合法,尽管使用段寄存器名称作为指令前缀
是有效的,可以与指令一起使用,例如 LODSB 不能被任何覆盖
另一种方式。
常量 可以以大多数格式用数字表示:尾随 H、Q 或 B 表示十六进制,
分别为八进制或二进制,前导 '0x' 或 '$' 也表示十六进制。 前导零
根本没有受到特殊对待。 字符常量可以用 single 或 double 括起来
引号; 没有转义字符。 顺序是小端(颠倒),所以
字符常量 'A B C D' 表示 0x64636261 而不是 0x61626364。
局部标签以句点开头,它们的“局部性”由汇编程序授予
在前一个非局部符号的名称之前。 因此在之后声明一个标签“.loop”
标签“label”实际上定义了一个名为“label.loop”的符号。
指令
部分 姓名 or 段 姓名 原因 NASM 将以下所有代码定向到命名的
部分。 部分名称因输出文件格式而异,尽管大多数格式都支持
名称 的.text, 。数据 和 .bss. (例外是 OBJ 格式,其中所有段都是
用户可定义。)
绝对 地址 原因 NASM 将其名义上的集合点定位在一个绝对的位置
地址:因此可能不会生成代码或数据,但您可以使用 资源局, 回滚 和 静电放电 移动
进一步的集合点,您可以定义标签。 所以这个指令可用于
定义数据结构。 当你完成绝对汇编后,你必须发出
另一个 部分 指令返回正常程序集。
BITS 16, BITS 32 or BITS 64 切换默认处理器模式 NASM is
生成代码:相当于 用途16 or 用途32 在 DOS 汇编程序中。
外部 符号 和 全球 符号 分别从
和其他模块。 请注意, 全球 指令必须出现在定义之前
它所指的符号。
结构 结构名 和 端部结构, 当用于括起多个 资源局, 回滚 或类似
指令,定义数据结构。 除了定义偏移量
结构成员,构造还定义了结构大小的符号,
这只是结构名称 尺寸 坚持到最后。
特定格式 指令
组织 地址 由 箱子 平面二进制输出格式,并指定地址
最终将在其中加载输出代码。
公司 名称 段1 段2... 由 obj(Microsoft 16 位)输出格式使用,并且
定义段组。 这种格式也使用 大写,它指示所有段,
输出到目标文件的组和符号名称应为大写。 请注意,
实际组装仍然区分大小写。
图书馆 库名 由 RDF 输出格式,并导致依赖记录
写入输出文件,表明该程序需要某个库
命令运行。
MACRO 预处理器
使用单行宏定义 %定义 or %定义 命令,在类似的
C 预处理器的时尚。 它们可以在数量方面过载
参数,虽然定义一个没有参数的宏会阻止任何
带参数的同名宏,反之亦然。 %定义 定义宏
名称区分大小写,而 %定义 定义不区分大小写的宏。
多行宏定义使用 %宏 和 %宏 (区别与
之间的 %定义 和 %定义),其语法如下
% 宏名称 minprm[-maxprm][+][.nolist] [默认值]
% 宏
同样,这些宏可能会过载。 尾随的加号表示任何
最后一个之后的参数被包含在最后一个中,用它们的分隔逗号
参数。 的 默认 部分可用于为未指定的宏指定默认值
参数后 最小参数. %endm 是有效的同义词 % 宏.
要在宏扩展中引用宏参数,请使用 %1, %2 等等。 你
还可以通过使用强制宏参数应包含条件代码 %+1和
您可以使用反转条件代码 -1%. 您还可以定义特定于某个标签的标签
宏调用通过在它前面加上双 '%' 符号。
文件可以使用 %包括 指令,其工作方式类似于 C。
预处理器有一个“上下文堆栈”,它可以被一个宏用来存储
稍后将检索到的信息。 您可以使用在堆栈上推送上下文
%推, 删除一个使用 %流行音乐,并更改顶级上下文的名称(不打扰
任何相关的定义)使用 %回复. 标签和 %定义 特定于顶部的宏
上下文可以通过在名称前加上 %$ 来定义,以及特定于下一个的事物
上下文与 %$$,等等。
有条件的组装是通过 %ifdef, %ifndef, %别的 和 %万一 如在 C 中。
(除了那个 %ifdef 可以接受几个假定的宏名称,如果有的话将评估为 TRUE
其中定义了。)此外,指令 %ifctx 和 %ifnctx 可用于
以上下文堆栈中顶部上下文的名称为条件。 明显的集
“else-if”指令, %elifdef, %elifndef, %elifctx 和 %elifncx 也受支持。
使用 onworks.net 服务在线使用 nasm