收到有关“的错误,但没有”

Getting an error about a ", but there is no "

我正在为 ATmega8 编写一些汇编代码,但我遇到了一个相当奇怪的错误。

这是发生错误的行的示例:

ldi A, B%C

其中 ABC 在我的代码顶部定义如下:

.DEF A = r1
.DEF B = r0
.EQU C = 15

这是我收到的错误(这最初是 table):

Description: syntax error, unexpected "

File: test.asm

Line: 120

Col: 0

Project: Testing

奇怪的是,我的整个代码中没有一个"。但是,我怀疑 " 可能来自包含的文件 m8def.inc。 这是使用 Atmel Studio 的汇编器组装的。

Why do you need to know why I need to find out what the value in r0 mod 15 is?

我需要知道您想要找出 r0 mod 15 中的值是什么...这不是解决问题的方法,因为 ldi只能加载编译时常量。要执行 mod 15 你需要一个除法,但 atmega8 没有那个。你可以做重复的减法或幻数乘法。

但是,根据您关于 B 作为计数器的额外信息,最简单的解决方案是在 A 中保留一个 mod 15 计数器,它会重置为 0当它达到 15.