为什么 NASM 当 运行 此 Stack Exchange 代码审查程序时出现错误?

Why do I get an error in NASM when running this StackExchange codereview program?

我相信我的问题很简单,所以我希望你能帮助我:

从这个 codereview post,我想 运行 他/她代码的 NASM 部分(那个页面上的第二大代码块)。但是 运行 宁它时我得到一个错误。具体来说:

file.asm: 错误:在 1003 遍后无法找到所有标签的有效值,放弃。

file.asm:错误:可能的原因:递归 EQU、宏滥用。

我运行在一台Linux机器上安装它,NASM 32位x86程序集,这正是根据最初的用户创建这个程序时使用的参数发布了代码审查。

我查找了这个错误并找到了一些帮助,尽管资源很少。似乎如果标签在代码中发音两次,就会出现该错误。但是,我已经搜索这段代码几个小时了,但我似乎找不到任何重复的标签或任何关于为什么会弹出此错误的推理。此外,网站上的用户似乎没有提出此错误,这表明它可能 运行 对他们来说没问题。

为什么会这样?

有两个明显的错误。第 5 行(基于 1)应为 badNumL equ $-badNum,第 7 行应为 gcdL equ $-gcdiv。一旦这些问题得到修复,就会出现一大堆其他错误和警告,但它会让您克服最初的错误。