错误:在-as行的末尾和ARM的-o错误

问题描述 投票:0回答:1

我正在尝试编写第一个ARM程序,并在尝试运行时收到此错误“作为-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}

非常感谢您链接到有用的文档或帮助调试,谢谢!

arm putty machine-code
1个回答
0
投票

您可能会混淆字符串的地址和要为其分配的值:.asciz指令确实需要一个字符串参数-您对代码稍加修改后的版本确实可以正确汇编:

.data
string1: .asciz "string1"
string2: .asciz "string2"

[string1现在是字节"string1\x00“所在地址的标签,string2是字节"string2\x00"所在地址的标签。

© www.soinside.com 2019 - 2024. All rights reserved.