Command-line arguments is part of Short Circuit's Console Program Basics selection.
Scripted main
See also Program name.

For parsing command line arguments intelligently, see Parsing command-line arguments.

Example command line:

myprogram -c "alpha beta" -h "gamma"

 
global _start
 
: syscall ( num:eax -- result:eax | rcx ) syscall ;
 
: exit ( status:edi -- noret ) 60 syscall ;
: bye ( -- noret ) 0 exit ;
: die ( err:eax -- noret ) neg exit ;
 
: unwrap ( result:eax -- value:eax ) dup 0 cmp ' die xl ;
: ordie ( result -- ) unwrap drop ;
 
1 const stdout
 
: write ( buf:esi len:edx fd:edi -- ) 1 syscall ordie ;
: print ( buf len -- ) stdout write ;
 
: newline ( -- ) s" \n" print ;
: println ( buf len -- ) print newline ; 
 
: find0 ( start:rsi -- end:rsi ) lodsb 0 cmp latest xne ; 
: cstrlen ( str:rdi -- len:rsi ) dup find0 swap sub dec ;
: cstr>str ( cstr:rdx -- str:rsi len:rdx ) dup cstrlen xchg ;
 
: print-arg ( arg -- ) cstr>str println ;
 
: _start ( rsp -- noret ) dup @ swap 
: print-args ( argc:rcx argv:rsp -- noret ) 
	8 add @ print-arg latest loop 
	bye 
;
 