aboutsummaryrefslogtreecommitdiffstats
path: root/asm/jo_c_args.asm
blob: 47a20320a1dd984526add5f5b4181f1faa4e9965 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                                      ;;
;;  File      : jo_c_args.asm                                             /_________/   ;;
;;  Author    : Joe                                                             |       ;;
;;  Date      : 04/2020                                                         |       ;;
;;  Info      : Check args                                                      |       ;;
;;                                                                      /       |       ;;
;;                                                                      \       /       ;;
;;                                                                       \_____/        ;;
;;                                                                                      ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

section .text
	extern strncmp
	global jo_c_args

jo_c_args:						; jo_c_args(argc: rdi, *argv[]: rdi)
	cmp		rdi, 0x2
	jle		no_args
	push	rdi
	mov		rdi, [rsi + 4 * 0]
	push	rsi
	mov		rsi, reference
	mov		rdx, len
	call	strncmp
	pop		rsi
	pop		rdi
	cmp		rax, 0x0
	jne		no_args
	mov		rax, [rsi + 4 * 0]
	retq

no_args:
	xor		rax, rax
	retq

section .data
	reference:	db "--say", 0x0
	len:		equ $ - reference ; reference len