我正在用 Python 编写 6502 汇编程序,但不知道如何处理:这是一个两遍汇编器,所以它在第一遍中计算出符号,然后在第二遍中填充它们。标准的东西。但!我希望它有一个“.if”伪操作,它将根据条件有条件地执行代码。那么如果 .if 伪操作正在测试一个尚未在第一遍中定义的前向引用符号,我该怎么办?没有它,我无法正确扩展代码以找出标签的位置来确定符号!我在想也许我可以根据 if 语句是否找到 Truth 来模拟生成多个版本的符号表,然后决定在第二遍中使用哪个版本,但这听起来对我的表现来说是一个可怕的打击。
1 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
这并不是对您问题的真正答案,而是对为什么您可以完好无损地承认失败的解释。
考虑以下:
.org $400
label1: nop
.if label2 - label1 == 1
nop
.endif
label2: nop
最后的组装是什么?如果排除了内的位,.if则条件为真,则应包括内的位。相反,如果包含 中的位,则条件为假,应排除 。.if.if.if
我认为限制.if使用在代码下方定义的标签是完全合理的。
添加回答
举报
0/150
提交
取消