我正在用Python编写6502汇编程序,并且不知道如何处理这个:
它是一个两遍汇编程序,所以它在第一遍中计算出符号,然后在第二遍填充它们。标准的东西。但!我希望它有一个“.if”伪操作,它将根据条件有条件地执行代码。
那么如果.if伪op正在测试一个尚未在第一次传递中定义的前向引用符号,我该怎么办?没有它,我无法正确扩展代码以确定标签的位置以确定符号!
我想也许我可以根据if语句是否找到Truth然后决定在第二遍中使用哪个版本来同时生成符号表的多个版本,但这听起来像是对我的表现的可怕打击。
这不是你问题的真正答案,更能解释为什么你可以完整地承认失败。
考虑以下:
.org $400
label1: nop
.if label2 - label1 == 1
nop
.endif
label2: nop
什么是最终装配?如果排除.if
中的位而不是条件为真,则应包括.if
中的位。相反,如果包括.if
中的位,则条件为假,并且应排除.if
。
我认为限制.if
使用在代码中进一步定义的标签是完全合理的。