From 147fb9ccca4593209349b7c6c41ddeca17678464 Mon Sep 17 00:00:00 2001 From: pommicket Date: Sat, 13 Nov 2021 13:56:26 -0500 Subject: str (hello wrold program is really simple now!) --- 03/in02 | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to '03/in02') diff --git a/03/in02 b/03/in02 index fa30868..7a55324 100644 --- a/03/in02 +++ b/03/in02 @@ -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 " +::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 " ::sy im @@ -2126,6 +2164,11 @@ jm 'l 'l 20 +::ST "str" text +'s +'t +'r +20 ::IF input file name 'i 'n -- cgit v1.2.3