“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的主要内容,如果未能解决你的问题,请参考以下文章