zombie-core-utils/diff.asm
2021-10-04 15:15:14 -04:00

57 lines
802 B
NASM

extern puts
extern libz_strcmp
section .data
tempstore db 0
tempstore2 db 0
argument_error db "Argument Error!... either too many args or too little please fix", 0
differ db "they differ",0
notdiffer db "they do not differ",0
section .text
global main
main:
sub rsp, 8 ;enter
cmp rdi, 3
jne _argument_error
add rsi, 8
mov r8, [rsi]
mov r9, [r8]
mov [tempstore], r8
add rsi, 8
mov r8, [rsi]
mov [tempstore2], r8
mov rdi, [tempstore]
mov rsi, [tempstore2]
call libz_strcmp
cmp r10b, 1 ;why tf did i make ut r10b as the return like tf?!?!?!?
jz _notdiffer
_differ:
mov rdi, differ
cld
call puts
jmp _end
_notdiffer:
mov rdi, notdiffer
cld
call puts
_end:
add rsp, 8 ;exit
ret
_argument_error:
mov rdi, argument_error
cld
call puts
jmp _end