我有一个用于大学目的的树莓派。由于家里没有显示器,所以我决定使用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 '
我不知道自己在做错什么,因为在树莓派上进行这种精确的处理非常完美。
答案 0 :(得分:1)
如@zch所述,您不能使用当前工具链编译ARM程序集:(可能)配置为将x86程序集作为输入来生成x86目标文件。
要实现您的目标,您必须安装交叉编译工具链。
我认为,最简单的方法是安装build-essential
和gcc-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
有很多方法可以做到这一点,但是我发现以下参考文献是相关的: