【发布时间】:2018-03-14 10:39:41
【问题描述】:
所以我一直在做组装教程,一开始就卡住了。
项目名称:asmtut.s
代码:
.text
.global _start
start:
MOV R0, #65
MOV R7, #1
SWI 0
一开始,我在尝试此行后收到 3 条错误消息:
as -o asmtut.o asmtut.s
asmtut.s:6:错误:在“,”之后需要操作数;一无所有
asmtut.s:7:错误:在“,”之后需要操作数;一无所有
asmtut.s:9:错误:没有这样的指令:'swi 0'
我很困惑,因为这是教程中的确切代码,并且完全可以正常工作。
谁能帮帮我这是什么原因造成的?
【问题讨论】:
-
您使用哪个
as变体?您遵循哪个教程? -
我怀疑您使用的是 x86 Linux 系统,
as正在等待 x86 指令。#是注释字符,x86 没有swi指令。本教程可能在 ARM 系统上 运行as。在 x86 上,安装交叉汇编程序。 (顺便说一句,你的标签应该是_start:,而不是start:。不过,它仍然可以工作,因为ld默认将.text部分的开头作为入口点,如果没有_start符号。 -
谢谢,这可以解释。非常感激。我正在 youtube 上做 Derek Banas 的组装教程。 youtube.com/watch?v=ViNnfoE56V8
标签: assembly arm cross-compiling