This commit is contained in:
nub31
2025-05-12 21:09:50 +02:00
parent 403adefa6a
commit 2c3fa531a4

View File

@@ -1,31 +1,36 @@
global _start
extern main, gc_init
extern main
section .text
_start:
call gc_init
call main
mov rdi, rax
mov rax, 60
; Extract argc and argv from the stack
mov rdi, [rsp] ; rdi = argc
lea rsi, [rsp + 8] ; rsi = argv (pointer to array of strings)
; Call main(argc, argv)
call main ; main returns int in rax
; Exit with main's return value
mov rdi, rax ; exit code
mov rax, 60 ; syscall: exit
syscall
global nub_strcmp
section .text
nub_strcmp:
xor rdx, rdx
xor rdx, rdx
.loop:
mov al, [rsi + rdx]
mov bl, [rdi + rdx]
inc rdx
cmp al, bl
jne .not_equal
cmp al, 0
je .equal
jmp .loop
mov al, [rsi + rdx]
mov bl, [rdi + rdx]
inc rdx
cmp al, bl
jne .not_equal
cmp al, 0
je .equal
jmp .loop
.not_equal:
mov rax, 0
ret
mov rax, 0
ret
.equal:
mov rax, 1
ret
mov rax, 1
ret