最近,我一直在尝试学习 ARM 汇编(ARM 因为我的 Mac 可以运行它),但是我能找到的所有教程和资源都略有不同,我使用的版本又不同了!
我见过的一些版本有
.section .text
和 .section .data
,而其他网站有一堆 svc
调用(或任何它们的名称),它们与我所拥有的完全不同。我还没有找到任何地方有适合我的代码(除了这个视频,但我已经知道如何做其中的所有事情)
这是在我的笔记本电脑上运行的 hello world 程序:
// Print 'Hello, world!" to stdout"
.global _main
.p2align 3 // no bus error idk
_main:
// Print 'Hello, world!'
mov x0, #1 // Use file stdout
mov x16, #4 // Write to stdout
adr x1, message // Address of message to print
mov x2, #13 // Length of message
svc 0 // Execute
// Exit
mov x0, #0 // Move return code to register 0
mov x16, #1 // Service command code 1 terminates this program
svc 0 // Call service call 0 (exit program)
message: .ascii "Hello, world!"
终端输入:
user@laptop folder % make src=helloWorld
as -o helloWorld.o helloWorld.s
ld -o helloWorld helloWorld.o
make clean
rm *.o
user@laptop folder % ./helloWorld
Hello, world!%
总之,我需要一些资源来教我如何为我的 M1 Mac(2020 touchbar)编写汇编
所以基本上,苹果有自己奇怪的版本。不能在其他平台上运行,只能在苹果上运行:/