LibAsm/alloca.S
2025-01-24 18:49:07 +00:00

43 lines
899 B
ArmAsm

.intel_syntax noprefix
.macro alloca size
sub rsp, \size
.endm
.text
.globl _start
_start:
# Could just use push, but this also works.
alloca 16
mov byte ptr [rsp+15], 10
mov byte ptr [rsp+14], 33
mov byte ptr [rsp+13], 100
mov byte ptr [rsp+12], 108
mov byte ptr [rsp+11], 114
mov byte ptr [rsp+10], 111
mov byte ptr [rsp+9], 119
mov byte ptr [rsp+8], 32
mov byte ptr [rsp+7], 44
mov byte ptr [rsp+6], 111
mov byte ptr [rsp+5], 108
mov byte ptr [rsp+4], 108
mov byte ptr [rsp+3], 101
mov byte ptr [rsp+2], 72
# Can't move imm64 to memory directly, so have to copy to register first!
# mov rax, 729975031549884192
# mov qword ptr [rsp+8], rax
# mov rax, 48857072035144
# mov qword ptr [rsp], rax
mov rax, 1
mov rdi, 1
lea rsi, [rsp]
mov rdx, 15
syscall
mov rax, 60
mov rdi, 0
syscall