Error: Junk at end of line -as and -o error with ARM
Error: Junk at end of line -as and -o error with ARM
我正在尝试编写我的第一个 ARM 程序,但当我尝试 运行 时出现此错误
"as -o labl1.o lab1.s"
lab1.s:3: Error: junk at end of line, first unrecognized character is `s'
我非常不确定我在这里做错了什么,因为我唯一一次使用 s 是在我的 2 个字符串中,并且非常困惑我在代码中哪里出错了。
@Data
.data
string1: .asciz
string2: .asciz
@Code
.text
.global main
.extern printf
main:
push {ip, lr}
push {r0, r1, r2}
ldr r0, =string1
mov r1, #34
mov r2, #56
bl printf
pop {r0,r1,r2}
push {r0}
ldr r0, =string2
bl printf
pop {r0}
pop {ip, pc}
非常感谢指向有用文档或帮助调试的链接,谢谢!
您可能混淆了字符串的地址和您要分配给它们的值:正如 GNU 中指定的 documentation,.asciz
指令确实需要一个字符串参数 - 稍作修改您的代码版本 assemble 正确:
.data
string1: .asciz "string1"
string2: .asciz "string2"
string1
现在是字节"string1\x00
所在地址的标签,string2
是字节"string2\x00"
所在地址的标签。
我正在尝试编写我的第一个 ARM 程序,但当我尝试 运行 时出现此错误 "as -o labl1.o lab1.s"
lab1.s:3: Error: junk at end of line, first unrecognized character is `s'
我非常不确定我在这里做错了什么,因为我唯一一次使用 s 是在我的 2 个字符串中,并且非常困惑我在代码中哪里出错了。
@Data
.data
string1: .asciz
string2: .asciz
@Code
.text
.global main
.extern printf
main:
push {ip, lr}
push {r0, r1, r2}
ldr r0, =string1
mov r1, #34
mov r2, #56
bl printf
pop {r0,r1,r2}
push {r0}
ldr r0, =string2
bl printf
pop {r0}
pop {ip, pc}
非常感谢指向有用文档或帮助调试的链接,谢谢!
您可能混淆了字符串的地址和您要分配给它们的值:正如 GNU 中指定的 documentation,.asciz
指令确实需要一个字符串参数 - 稍作修改您的代码版本 assemble 正确:
.data
string1: .asciz "string1"
string2: .asciz "string2"
string1
现在是字节"string1\x00
所在地址的标签,string2
是字节"string2\x00"
所在地址的标签。