“spim: (parser) syntax error on line [...]” 我使用了标签 .byte

Posted

技术标签:

【中文标题】“spim: (parser) syntax error on line [...]” 我使用了标签 .byte【英文标题】:"spim: (parser) syntax error on line [...]" where i used the label .byte 【发布时间】:2016-05-06 14:52:02 【问题描述】:

当我在汇编中编程并使用标签.byte 时,我在使用Qtspim 执行它时遇到问题。我尝试更改位置或值,但问题仍然存在,并且可能是标签。

错误回复在第 3 行。在标签的末尾您可以找到解析器。

main:

.data
  v    : .byte 2,0,0,0,4,0,0,0
  array: .byte 2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0

[..] # other code

当我将指令 .byte 更改为 .space 时,问题不会发生。

我该如何解决?

【问题讨论】:

不清楚错误发生在哪里。它是否发生在声明站点,或者您稍后尝试使用该标签时?另外,为什么文本部分中间有数据部分?他们应该完全分开。 提供更广泛的代码 sn-p 会很有帮助。 【参考方案1】:

问题是至少 QtSpim 要求数组在逗号后有空格。所以这会很好用:

.data
v:  .byte 2, 0, 0, 0, 4, 0, 0, 0

请记住在每个值后添加一个空格。

这样做的原因是 QtSpim 使用的解析器允许使用逗号或点作为小数分隔符。所以除非有空格分开,否则它对您的定义感到困惑。

这将允许定义一个浮点数:

flo:  .float 2,2

【讨论】:

非常感谢萨米。我没有使用每个值之间的空格,因为在实验室不存在差异。所以我不明白为什么不同计算机(我的个人笔记本电脑和 PC 实验室)的问题会发生变化。 @Andrew 这很有趣。我设法从源代码中得到的是它应该总是需要空间。但至少它不应该抱怨如果有空格,所以你可以随时添加它。

以上是关于“spim: (parser) syntax error on line [...]” 我使用了标签 .byte的主要内容,如果未能解决你的问题,请参考以下文章