2016-05-06 9 views
4

Когда я программирую сборку и использую метку .byte, у меня есть проблема с ее выполнением с помощью Qtspim. Я попытался изменить позицию или значение, но проблема сохраняется и, вероятно, является ярлыком.Ошибка синтаксиса spim: (parser) в строке [...] ", где я использовал метку .byte

Ответ на ошибку был в строке 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 проблема не возникает.

Как я могу разрешить это?

+1

Это не ясно, где происходит ошибка. Это происходит на сайте объявления или когда вы пытаетесь использовать метку позже? Кроме того, почему у вас есть раздел данных в середине текстового раздела? Они должны полностью разделиться. – Michael

+0

Было бы полезно предоставить более обширный фрагмент кода. – zx485

ответ

0

Проблема в том, что по крайней мере QtSpim требует, чтобы массивы имели место после запятых. Так что это будет работать нормально:

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

Не забудьте добавить пробел после каждого значения.

Причина этого заключается в том, что синтаксический анализатор QtSpim использует использование запятой или точкой в ​​качестве десятичного разделителя. Поэтому это смущает ваше определение, если нет места для разделения.

Это будет разрешен для определения поплавка:

flo: .float 2,2 
+0

Спасибо большое Сами. Я не использовал пространство между каждым значением, потому что в лаборатории нет разницы. Поэтому я не понимаю, почему проблема изменилась в разностном компьютере (мой персональный ноутбук и ПК-лаборатория). – Andrew

+0

@ Андрю Это интересно. То, что мне удалось получить из исходного кода, было то, что он всегда должен иметь пространство. Но, по крайней мере, он никогда не должен жаловаться, если есть пространство, поэтому вы всегда можете просто добавить его. –

+0

Большое вам спасибо за исчерпывающий ответ. – Andrew