Sjasm:不能 assemble DW 或 OUTPUT 指令?
Sjasm: can't assemble DW or OUTPUT directive?
这是我的代码:
output "ejemplo1.bin"
db #fe
dw START
dw END
org #8500
START:
ld a, [#8600]
ld b, a
ld a, [#8601]
add a, b
ld [#8602], a
ret
结束:
这就是我在尝试编译它时得到的结果:
C:\Users\Daniel\Programming\MSX\asm>sjasm ejemplo1.asm
Sjasm Z80 Assembler v0.42c - www.xl2s.tk
ejemplo1.asm(1) : Unrecognized instruction: "ejemplo1.
ejemplo1.asm(3) : Label not found: fe
ejemplo1.asm(4) : Unrecognized instruction: start
ejemplo1.asm(5) : Duplicate labelname: dw
知道我做错了什么吗?
如果您阅读 manual 会有帮助。
主要错误:只有标签从第一列开始,在任何指令或伪指令前至少插入一个space或制表符。
ejemplo1.asm(1) : Unrecognized instruction: "ejemplo1.
output
被解释为标签,因此文件名被尝试作为指令。有趣的细节是点“.”。被当作分隔符。顺便说一句,根据示例,文件名不在引号中。
ejemplo1.asm(3) : Label not found: fe
db
被解释为标签,也许#fe
被解释为结构字段条目。 #
定义字段的长度,因此 fe
不被识别为数字,而是识别为标签。这种解释在我看来像是汇编程序中的错误。
ejemplo1.asm(4) : Unrecognized instruction: start
dw
被解释为标签,因此 start
被尝试作为指令。
ejemplo1.asm(5) : Duplicate labelname: dw
dw
再次被解释为标签,因为错误消息告诉我们它已经被定义(在之前的行中)。
注意:如果您更正代码并遇到新错误,请随时 post 提出新问题。您可能想将此添加到此问题,但不要删除当前内容,添加它并将其标记为添加。
这是我的代码:
output "ejemplo1.bin"
db #fe
dw START
dw END
org #8500
START:
ld a, [#8600]
ld b, a
ld a, [#8601]
add a, b
ld [#8602], a
ret
结束: 这就是我在尝试编译它时得到的结果:
C:\Users\Daniel\Programming\MSX\asm>sjasm ejemplo1.asm
Sjasm Z80 Assembler v0.42c - www.xl2s.tk
ejemplo1.asm(1) : Unrecognized instruction: "ejemplo1.
ejemplo1.asm(3) : Label not found: fe
ejemplo1.asm(4) : Unrecognized instruction: start
ejemplo1.asm(5) : Duplicate labelname: dw
知道我做错了什么吗?
如果您阅读 manual 会有帮助。
主要错误:只有标签从第一列开始,在任何指令或伪指令前至少插入一个space或制表符。
ejemplo1.asm(1) : Unrecognized instruction: "ejemplo1.
output
被解释为标签,因此文件名被尝试作为指令。有趣的细节是点“.”。被当作分隔符。顺便说一句,根据示例,文件名不在引号中。
ejemplo1.asm(3) : Label not found: fe
db
被解释为标签,也许#fe
被解释为结构字段条目。 #
定义字段的长度,因此 fe
不被识别为数字,而是识别为标签。这种解释在我看来像是汇编程序中的错误。
ejemplo1.asm(4) : Unrecognized instruction: start
dw
被解释为标签,因此 start
被尝试作为指令。
ejemplo1.asm(5) : Duplicate labelname: dw
dw
再次被解释为标签,因为错误消息告诉我们它已经被定义(在之前的行中)。
注意:如果您更正代码并遇到新错误,请随时 post 提出新问题。您可能想将此添加到此问题,但不要删除当前内容,添加它并将其标记为添加。