我是一个组装新手,想学习arm组装(仅仅因为我有一台m1 mac)。我在网上找不到很多资源,这就是我来这里的原因。我的代码如下(文件名为first.asm):
global _main
section .text
_main:
mov r7, 0x4
mov r0, 1
ldr r1, message
mov r2, 13
swi 0
.section .data
message: .ascii "Hello, World\n"
当我使用
as first.asm -o hello.o
出现以下错误:
first.asm:2:1: error: invalid instruction mnemonic 'global'
global _main
^~~~~~
first.asm:3:1: error: invalid instruction mnemonic 'section'
section .text
^~~~~~~
first.asm:6:2: error: unknown use of instruction mnemonic without a size suffix
mov r7, 0x4
^
first.asm:7:2: error: unknown use of instruction mnemonic without a size suffix
mov r0, 1
^
first.asm:8:2: error: invalid instruction mnemonic 'ldr'
ldr r1, message
^~~
first.asm:9:2: error: unknown use of instruction mnemonic without a size suffix
mov r2, 13
^
first.asm:10:2: error: invalid instruction mnemonic 'swi'
swi 0
^~~
first.asm:12:15: error: unexpected token in '.section' directive
.section .data
我有几个问题:
1.“as”是一个用于汇编代码的内置mac编译器吗?
1.我是否需要不同的编译器?
1.既然我使用的是m1 mac,学习arm汇编对我来说有意义吗?或者我可以毫无问题地编写x86汇编吗?
2条答案
按热度按时间sdnqo3pr1#
我想你会在这里找到开始在Apple M1上编写ARM64汇编代码所需要知道的一切:https://github.com/below/HelloSilicon
z6psavjg2#
使用nasm(brew安装nasm)
和链接:
我在配备M1芯片的MacbookPro上成功测试了这一点
See this link