如何在汇编程序中处理IF伪操作的正向引用

问题描述 投票:2回答:1

我正在用Python编写6502汇编程序,并且不知道如何处理这个:

它是一个两遍汇编程序,所以它在第一遍中计算出符号,然后在第二遍填充它们。标准的东西。但!我希望它有一个“.if”伪操作,它将根据条件有条件地执行代码。

那么如果.if伪op正在测试一个尚未在第一次传递中定义的前向引用符号,我该怎么办?没有它,我无法正确扩展代码以确定标签的位置以确定符号!

我想也许我可以根据if语句是否找到Truth然后决定在第二遍中使用哪个版本来同时生成符号表的多个版本,但这听起来像是对我的表现的可怕打击。

python python-3.x assembly 6502
1个回答
4
投票

这不是你问题的真正答案,更能解释为什么你可以完整地承认失败。

考虑以下:

.org $400
label1: nop
.if label2 - label1 == 1
        nop
.endif
label2: nop

什么是最终装配?如果排除.if中的位而不是条件为真,则应包括.if中的位。相反,如果包括.if中的位,则条件为假,并且应排除.if

我认为限制.if使用在代码中进一步定义的标签是完全合理的。

© www.soinside.com 2019 - 2024. All rights reserved.