35 lines
591 B
NASM
35 lines
591 B
NASM
global _start
|
|
extern main
|
|
|
|
section .text
|
|
_start:
|
|
; The args already match our array structure, so we pass the result directly
|
|
mov rdi, rsp
|
|
|
|
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
|
|
|
|
nub_strcmp:
|
|
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
|
|
.not_equal:
|
|
mov rax, 0
|
|
ret
|
|
.equal:
|
|
mov rax, 1
|
|
ret
|
|
|