;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; File : jo_c_args.asm /_________/ ;; ;; Author : Joe | ;; ;; Date : 04/2020 | ;; ;; Info : Check args | ;; ;; / | ;; ;; \ / ;; ;; \_____/ ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; jo_c_args(argc: rdi, *argv[]: rsi) ;; ---------------------------------- ;; returns 0 if args are invalid ;; returns 1 if args are valid section .text extern strncmp global jo_c_args jo_c_args: cmp rdi, 0x2 jle no_args mov rax, [rsi + 0x8 * 0x2] cmp byte [rax + 0x0], 0x0 je no_args push rdi mov rdi, [rsi + 0x8 * 0x1] push rsi mov rsi, reference mov rdx, reflen call strncmp pop rsi pop rdi cmp rax, 0x0 jne no_args mov rax, 0x1 retq no_args: xor rax, rax retq section .data reference: db "--say", 0x0 reflen: equ $ - reference