from-scratch/test.asm
2026-08-04 18:20:58 +02:00

52 lines
625 B
NASM

section .text
global _start
_start:
mov rdi, 42
call main
mov rdi, rax
mov rax, 60 ; syscall: exit
syscall
global main
main:
push rbp
mov rbp, rsp
jmp .prologue
.args:
mov qword [rbp -8], rdi
.body:
mov rbx, 42
mov rcx, qword [rbp -8]
mov rax, rbx
cmp rcx, rax
sete bl
cmp bl, 0
je .Be
mov rbx, 7
mov qword [rbp -16], rbx
mov rdi, qword [rbp -16]
mov rax, rsp
sub rsp, 8
and rsp, -16
mov [rsp], rax
call main
pop rsp
mov rbx, rax
mov rax, rbx
jmp .epilogue
jmp .PHI4
.Be:
lea rax, main
jmp .epilogue
.PHI4:
.epilogue:
pop rbx
add rsp, 16
pop rbp
ret
.prologue:
sub rsp, 16
push rbx
jmp .args