Как исправить «Ошибка: мусор в конце строки, первый нераспознанный символ 0xe2» в сборке - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь написать базовый файл сборки arm на моем raspberry pi 3, который имеет доступ к printf и scanf через компилятор gcc, но после компиляции моего кода я получаю странную ошибку.

Это мойтретье приложение, написанное на ассемблере для использования компилятора gcc, поэтому я хотел провести инкрементальное тестирование, поэтому я настроил свои подсказки и строки, и я попытался выйти чисто;однако, это мой код, который выдает ошибку:

.data
    .balign 4
    promptNum1: .asciz “Please enter some number that you want to work with”
    .balign 4
    inputNum1String: .asciz “%d”
    .balign 4
    outputString: .asciz “Your answer is %d”
    .balign 4
    return: .word 0
    .balign 4
    signPrompt: .word “What do you want the numbers to do?\n 1)add \n 2)subtract\n 3)multiply\n 4)divide”
.text
.global main
main: 
    ldr r11, addressOfReturn
    str lr, [r11]
.
.
.
    ldr r11, addressOfReturn
    ldr lr, [r11]
    bx lr

addressOfPromptNum1: .word promptNum1
addressOfInputNum1String: .word inputNum1String
addressOfOutputString: .word outputString
addressOfReturn: .word return

Я ожидаю, что это скомпилируется так же, как мой предыдущий код, однако моя ошибка ссылается на нераспознанный символ в строках с promptNum1, inputNum1String, outputString, signPrompt,Тем не менее, нераспознанный символ - 0xe2 , и, просмотрев его, я обнаружил, что символ, который не распознается компилятором, вообще отсутствует в моем файле.

1 Ответ

3 голосов
/ 05 мая 2019

Кавычки в вашем коде - это «умные кавычки» (последовательности utf-8 e2 80 9c и e2 80 9d), которые плохо сочетаются с ассемблером.Измените их на обычные кавычки, и все будет в порядке.

.data
    .balign 4
    promptNum1: .asciz "Please enter some number that you want to work with"
    .balign 4
    inputNum1String: .asciz "%d"
    .balign 4
    outputString: .asciz "Your answer is %d"
    .balign 4
    return: .word 0
    .balign 4
    signPrompt: .word "What do you want the numbers to do?\n 1)add \n 2)subtract\n 3)multiply\n 4)divide"
.text
.global main
main: 
    ldr r11, addressOfReturn
    str lr, [r11]
.
.
.
    ldr r11, addressOfReturn
    ldr lr, [r11]
    bx lr

addressOfPromptNum1: .word promptNum1
addressOfInputNum1String: .word inputNum1String
addressOfOutputString: .word outputString
addressOfReturn: .word return
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...