在linux中组装此代码会给我带来语法错误

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

我有一个用于大学目的的覆盆子pi。因为在家里我没有显示器,所以我决定使用Lubuntu从我的笔记本电脑进行组装编码。

问题是,即使我在树莓上组装它时也能正常工作,当我从笔记本电脑运行命令as -g -o $1.o $1.asm && gcc -g -o $1 $1.o时,我从汇编程序中收到错误消息。

这是代码

@ test this code
.global main
main:

mov r7,#1
svc #0

这是汇编程序响应

wsearch.asm: Assembler messages:
wsearch.asm:1: Error: junk at end of line, first unrecognized character is `@'
wsearch.asm:5: Error: expecting operand after ','; got nothing
wsearch.asm:6: Error: no such instruction: `svc '

我不知道我做错了什么,因为在树莓上做这个完全正确的过程。

assembly arm
1个回答
1
投票

正如@zch所提到的,你无法使用当前的工具链编译ARM程序集:它(可能)配置为将x86程序集作为输入,以生成x86目标文件。

要实现您的目标,您必须安装交叉编译工具链。在我看来,最简单的方法是安装build-essentialgcc-arm-linux-gnueabihf

$ sudo apt install build-essential gcc-arm-linux-gnueabihf 

安装后,你应该有一个新的工具链,前缀为arm-linux-gnueabihf-。在你的情况下,你会使用arm-linux-gnueabihf-as -g -o $1.o $1.asm && arm-linux-gnueabihf-gcc -g -o $1 $1.o

有很多方法可以做到这一点,但我发现以下引用是相关的:

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