GoGPT Best VPN GoSearch

OnWorks 网站图标

nasm - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 nasm

这是 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


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。