为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑5688855 2021-06-07 17:13:36
我正在用 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使用在代码下方定义的标签是完全合理的。


查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信