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