Неверный символ (0xe2) в мнемонике
У меня проблемы с компиляцией моего кода сборки.
gcc возвращает: func_select.s:5: ошибка: недопустимый символ (0xe2) в мнемоническом выражении func_select.s:7: ошибка: недопустимый символ (0xe2) в мнемоническом выражении
вот код (строки 5-7):
secondStringLength: .string " second pstring length: %d\n"
OldChar: .string "old char: %c,"
NewChar: .string " new char: %c,"
Как я могу это исправить?
2 ответа
Решение
Удалите символы форматирования, встроенные в текст.
$ charinfo 'secondStringLength:.string " second pstring length: %d\n"'
U+0073 LATIN SMALL LETTER S [Ll]
U+0065 LATIN SMALL LETTER E [Ll]
...
U+0068 LATIN SMALL LETTER H [Ll]
U+003A COLON [Po]
U+202B RIGHT-TO-LEFT EMBEDDING [Cf]
U+202A LEFT-TO-RIGHT EMBEDDING [Cf]
U+002E FULL STOP [Po]
U+0073 LATIN SMALL LETTER S [Ll]
...
U+0025 PERCENT SIGN [Po]
U+0064 LATIN SMALL LETTER D [Ll]
U+202C POP DIRECTIONAL FORMATTING [Cf]
U+202C POP DIRECTIONAL FORMATTING [Cf]
U+005C REVERSE SOLIDUS [Po]
U+006E LATIN SMALL LETTER N [Ll]
U+0022 QUOTATION MARK [Po]
Игансио Васкес-Абрамс прав. Чтобы предоставить более подробную информацию, в соответствии с xxd
это ваша первая строка:
$ cat b | xxd
00000000: 7365 636f 6e64 5374 7269 6e67 4c65 6e67 secondStringLeng
00000010: 7468 3a20 2020 2020 e280 abe2 80aa 2e73 th: .......s
00000020: 7472 696e 6720 2220 7365 636f 6e64 2070 tring " second p
00000030: 7374 7269 6e67 206c 656e 6774 683a 2025 string length: %
00000040: 64e2 80ac e280 ac5c 6e22 0a0a d......\n"..
Замечания: e2 80 ab
а потом e2 80 aa
, Эти U+202B
а также U+202A
упомянутый ранее. Удалить их (а также следующие 2 U+202C
).