这是命令 z80asm,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
z80asm - Z80 微处理器的汇编程序
概要
z80asm [选项[文件...]
商品描述
Z80asm 是 Z80 组装的汇编程序。 如果未指定输入文件,则使用标准输入。
如果未指定输出文件,则使用“a.bin”。 如果“-”被指定为输出文件,
使用标准输出。 这使得在流水线中使用汇编器成为可能。
当指定多个输入文件时,汇编器首先使用所有的文件
按照给定的顺序使用 -i 或 --input 指定。 之后,所有文件
指定为非选项参数也按给定的顺序组装。
配置
-H, - 帮帮我
显示选项摘要并退出。
-V, - 版
显示版本信息并退出。
-v, --详细
详细点。 多次指定更详细。 消息发送至
标准错误。
-l, - 列表[=文件名]
写一个列表文件。 没有文件名或“-”表示标准错误。
-L, - 标签[=文件名]
写一个标签文件。 没有文件名或“-”表示标准错误。
-p, --label-前缀=前缀
使用此前缀为所有标签添加前缀。
-一世, - 输入=文件名
指定输入文件(-i 可以省略)。 '-' 表示标准输入。
-o, - 输出=文件名
指定输出文件。 '-' 或完全省略该选项意味着标准输出。
-一世, --包含路径=目录名
将目录添加到包含路径。 尝试目录的顺序
从后到前:指定的最后一个目录具有最高优先级。
“/usr/share/z80asm”始终在包含路径中(具有最低优先级),您没有
必须指定它。
-F, - 力量
即使出现错误也能产生输出。 通常输出、列表和标签文件
组装不成功时删除。
大会 指令
所有助记符和寄存器都不区分大小写。 所有其他文本(特别是标签
和宏)不是。 尽可能支持未记录的操作码:
sll 和 sli 是相等的,都可以使用。
可以使用ixh、ixl、iyh和iyl。
汇编指令是:
公司 '文件名'
在生成的汇编文件中包含一个二进制文件。 这可以用来
包括文本文件,或图像,声音文件等。文件名在
当前目录,然后在包含路径中,就像包含。 还
像包含一样,引号可以是任何字符(但必须匹配)并且没有
执行替换(所以 ~ 不是您的主目录)。
定义 or db 阿格,阿格,阿格,...
定义字节。
定义 or dm "字符串", '字符串'
定义消息。 字符串中的每个字符都存储为一个字节。 反斜杠
允许转义,如表达式中的字符。 与论证不同
包括,引号必须真正是引号(但它们可以是单引号或双引号。
结束语必须与开头语一致。)
defb/db 和 defm/dm 实际上是别名; 可以同时使用带引号的字符串和数字:
defb "此文本应该在缓冲区中\r\n", 0
定义 or ds 计数 [, 值]
定义空间。 count 字节被保留。 他们每个人都被初始化为
指定值,如果未指定值,则为 0。
默认 or dw 阿格,阿格,阿格,...
定义单词。 每个参数存储为两个字节,首先是低位字节。
end 结束此源文件的汇编。 任何剩余的行都被复制到列表中
文件(如果存在),但未组装。
标签: EQU 表达
定义标签以具有值表达。
if 表达
代码块 1
其他
代码块 2
其他
代码块 3
...
代码块 n
ENDIF
有条件地汇编代码。 如果表达式不为 0,则所有奇数代码块为
组装,如果表达式为 0,则组装所有偶数块。 通常只有一个或
存在两个代码块。
包括 '文件'
将文件包含到源中。 包含文件的引号是
强制性的,但您可以自己选择报价。 例如,您可以使用 % 甚至一个
信作为报价。 文件名不进行任何扩展,所以 \、~、$ 等
以书面形式传递(这意味着 ~ 将不是您的主目录。)
文件名按指定使用,然后以包含中的每个目录为前缀
路径,直到它可以打开。
标签: 宏 参数 1,参数 2,...
代码块
ENDIF
定义一个宏。 可以在需要操作码的地方使用宏。 代码块
然后用参数的给定值替换。 这是一个文字
替换,所以下面的例子是有效的:
标签名称
标签名称:
终结点
这将生成一个带有构造名称的标签(这不是一个非常有用的例子,
但它显示了可能性)。
组织结构 地址
将“程序计数器”设置为地址。 这不会向结果中添加任何字节
二进制,它只决定如何解释代码的其余部分(特别是,
标签的价值和 $).
寻求 抵消
寻求在输出文件中定位偏移量。 这可用于覆盖
先前组装的代码,例如用于修补包含的二进制文件
运用 公司.
表情
所有表达式都可以使用以下运算符,按优先顺序排列:(a, b 和 c
表示子表达式)
a ? b : c
如果 a 不为零,返回 b,否则返回 c
a | b 按位或
a ^ b 按位异或
a & b 按位和
a == b, a = b, a != b
平等
a <= b, a >= b, a < b, a > b
不等式
a << b, a >> b
位移
a + b, a - b
加减
a * b, a / b, a % b
乘法、除法和取模
~一, + A -a
按位不,没有效果和否定
?如果标签存在,则标签为 1,如果不存在则为 0。 如果 label 这样做,这不会产生错误
不存在。 请注意,这通常会立即评估(如果其余的
表达式允许),并且不检查标签是否在稍后定义。 这个
意味着它可以用作参数 if , 获取#ifdef 中的功能
C.
(一个) 插入语
表达式中的文字可以写成:(大小写无关紧要)
@c11 任意基数(由 'c' 指定,所以 c+1 == 10:这里的基数是 13)
14d, @ 914
十进制数
16点, 16q, &o16, @ 716
八进制数
0诶, 0xE, &他, $E, @FE
十六进制数(对于第一个符号,第一个字符必须是 0-9)
%1110, 1110b, &b1110, @ 11110
二进制数
's' 's' 的 ASCII 码
'\n', '\r', '\一种', '\t'
换行符、回车符、警报、制表符
'\nn' 八进制 ASCII 码
$ 当前命令的第一个字节的地址
LABELS
在所有表达式中,都可以使用标签。 但是,有一些表达式
value 必须是可立即计算的,因此只有先前定义的标签可以
用过的。 这是以下情况:
- 组织的论点
- 寻求的论点
- equ 的参数(例如,标签定义)
- ds 的第一个参数
- if 的参数
在所有其他表达式中,可以使用稍后定义的标签。
标签必须由字母、数字、下划线和句点组成,并且不得以
数字。 标签区分大小写。
以句点 (.) 开头的标签是 本地 ,这意味着它们的作用域只是当前
包含文件或宏定义(以及从它调用的文件包含/宏)。 这是
对宏特别有用,以防止在使用宏时重复定义更多
不止一次。
退出 状态
如果组装成功,则不会产生任何输出(结果和消息除外)
由 --verbose 触发)并返回 0。 出现任何错误,标准上都有输出
错误并返回 1。
附注
由于 if 语句和宏定义而未组装的部分
never used 仅检查是否有正确的命令。 不解析参数。 这个
意味着如果文件通过汇编器而没有警告或错误,它可能
在不同的设置中仍然没有正确组装(if 给出不同的
结果)。
使用 onworks.net 服务在线使用 z80asm
