Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
54
Task/Tokenize-a-string/MMIX/tokenize-a-string.mmix
Normal file
54
Task/Tokenize-a-string/MMIX/tokenize-a-string.mmix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
sep IS ','
|
||||
EOS IS 0
|
||||
NL IS 10
|
||||
|
||||
// main registers
|
||||
p IS $255
|
||||
tp GREG
|
||||
c GREG
|
||||
t GREG
|
||||
|
||||
LOC Data_Segment
|
||||
GREG @
|
||||
Text BYTE "Hello,How,Are,You,Today",EOS
|
||||
token BYTE 0
|
||||
eot IS @+255
|
||||
|
||||
LOC #100 % main () {
|
||||
Main LDA p,Text %
|
||||
LDA tp,token % initialize pointers
|
||||
2H LDBU c,p % DO get char
|
||||
BZ c,5F % break if char == EOS
|
||||
CMP t,c,sep % if char != sep then
|
||||
PBNZ t,3F % store char
|
||||
SET t,NL % terminate token with NL,EOS
|
||||
STBU t,tp
|
||||
SET t,EOS
|
||||
INCL tp,1
|
||||
STBU t,tp
|
||||
JMP 4F % continue
|
||||
|
||||
3H STBU c,tp % store char
|
||||
4H INCL tp,1 % update pointers
|
||||
INCL p,1
|
||||
JMP 2B % LOOP
|
||||
|
||||
5H SET t,NL % terminate last token and buffer
|
||||
STBU t,tp
|
||||
SET t,EOS
|
||||
INCL tp,1
|
||||
STBU t,tp
|
||||
% next part is not really necessary
|
||||
% program runs only once
|
||||
% INCL tp,1 % terminate buffer
|
||||
% STBU t,tp
|
||||
|
||||
LDA tp,token % reset token pointer
|
||||
% REPEAT
|
||||
2H ADD p,tp,0 % start of token
|
||||
TRAP 0,Fputs,StdOut % output token
|
||||
ADD tp,tp,p
|
||||
INCL tp,1 % step to next token
|
||||
LDBU t,tp
|
||||
PBNZ t,2B % UNTIL EOB(uffer)
|
||||
TRAP 0,Halt,0
|
||||
Loading…
Add table
Add a link
Reference in a new issue