asm_book/section_1/hello_world/no_macros.s
2024-05-02 09:27:33 -05:00

18 lines
529 B
ArmAsm

.global _main
_main:
stp x21, x30, [sp, -16]! // push onto stack
mov x21, x1 // argc -> x0, argv -> x1
top:
ldr x0, [x21], 8 // argv++, old value in x0
cbz x0, bottom // if *argv == NULL goto bottom
bl _puts // puts(*argv)
b top // goto top
bottom:
ldp x21, x30, [sp], 16 // pop from stack
mov x0, xzr // return 0
ret
.end