RosettaCodeData/Task/Command-line-arguments/MMIX/command-line-arguments.mmix
2023-07-01 13:44:08 -04:00

23 lines
710 B
Text

argv IS $1
argc IS $0
i IS $2
LOC #100
Main LOC @
SETL i,1 % i = 1
Loop CMP $3,argc,2 % argc < 2 ?
BN $3,1F % then jump to end
XOR $255,$255,$255 % clear $255
8ADDU $255,i,argv % i*8 + argv
LDOU $255,$255,0 % argv[i]
TRAP 0,Fputs,StdOut % write the argument
GETA $255,NewLine % add a newline
TRAP 0,Fputs,StdOut
INCL i,1 % increment index
SUB argc,argc,1 % argc--
BP argc,Loop % argc > 0? then Loop
1H LOC @
XOR $255,$255,$255 % exit(0)
TRAP 0,Halt,0
NewLine BYTE #a,0