diff options
author | pommicket <pommicket@gmail.com> | 2021-11-13 13:56:26 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2021-11-13 13:56:26 -0500 |
commit | 147fb9ccca4593209349b7c6c41ddeca17678464 (patch) | |
tree | 119d81214d1f48bd8a2617dcf30ce2ed1427897b /03/in02 | |
parent | 3fe11fa0cb21a5b78b401e86ca9ca382332e8a6f (diff) |
str (hello wrold program is really simple now!)
Diffstat (limited to '03/in02')
-rw-r--r-- | 03/in02 | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -78,6 +78,12 @@ im ##a. ascii '\n' jn :-rL keep looping +// subtract 1 from rbp because we don't care about the newline +im +##ffffffffffffffff. -1 +BR ++B +RA // we now have a full line from the file in ::LI // the pointer to the end of the line is in rbp // look at the first character @@ -213,6 +219,20 @@ im ##1. je :-sy +im +--ST "str" +IA +im +--LI +JA +im +--s= +cl +BA +im +##1. +je +:-st jm :-ex // handle += instruction @@ -1796,6 +1816,24 @@ jm :-rl jump back to read next line ::Cl cl +// handle "str <string>" +::st +im +##4. +BA +im +--LI ++B +IA pointer to string +nA +BR ++B +DA length of string +im +--wr write +cl +jm +:-rl next line // handle "syscall <number>" ::sy im @@ -2126,6 +2164,11 @@ jm 'l 'l 20 +::ST "str" text +'s +'t +'r +20 ::IF input file name 'i 'n |