繁体   English   中英

如何修复汇编中的“错误:行尾有垃圾,第一个无法识别的字符0xe2”

[英]How to fix 'Error: junk at end of line, first unrecognized character 0xe2' in Assembly

我试图在我的树莓派3上编写一个基本的arm汇编文件,该文件可以通过gcc编译器访问printf和scanf,但是在编译我的代码时,我遇到了一个奇怪的错误。

这是我用汇编语言编写的第三个使用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

我希望可以像以前的代码一样进行编译,但是,我的错误引用了提示行Num1,inputNum1String,outputString,signPrompt上无法识别的字符。 但是,无法识别的字符是0xe2 ,并且在查找后发现,编译器无法识别的字符根本不在我的文件中。

您代码中的引号是“智能引号”(utf-8序列e2 80 9ce2 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM