1

使用 TASM,我已经成功地在 emu8086 上编写了一个数字秒表(LAP 和正常),但是当我尝试在 TASM 上运行它时,我得到了错误Forward reference needs override。我知道为什么会发生此错误,因为我有两个程序都包括call另一个程序,因此将其中一个程序放在另一个程序之前是行不通的。例如

proc1 proc
;some code
CALL proc2
;some code
ret
endp

proc2 proc
;some code
CALL proc1
;some code
ret
endp

另一种解决方案是定义/编写整个过程而不是调用它,但这会产生Relative jump out of range. (我的代码也有几次跳转)

我的问题是无论如何我可以消除forward reference needs override我的情况下的错误吗?

4

1 回答 1

1

其他一些消息来源似乎暗示 TASM 有一个 multi-pass 命令行选项/m2,它将在源代码上执行指定数量的传递。在您的情况下,两遍应该就足够了,因为第一遍将看到 的定义,proc2然后第二遍可以使用它来正确翻译较早的call proc2.

于 2013-10-02T13:08:41.990 回答