From c664b4e61b54bed0bd55924c97fcad9d5ad97e21 Mon Sep 17 00:00:00 2001 From: pommicket Date: Sat, 13 Nov 2021 14:32:00 -0500 Subject: pretty much done 03 compiler! --- 03/in02 | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 139 insertions(+), 1 deletion(-) (limited to '03/in02') diff --git a/03/in02 b/03/in02 index 0eb608b..a1a4b32 100644 --- a/03/in02 +++ b/03/in02 @@ -278,8 +278,64 @@ im ##1. je :-al +im +--U* "mul" +IA +im +--LI +JA +im +--s= +cl +BA +im +##1. +je +:-u* +im +--S* "imul" +IA +im +--LI +JA +im +--s= +cl +BA +im +##1. +je +:-s* +im +--U/ "div" +IA +im +--LI +JA +im +--s= +cl +BA +im +##1. +je +:-u/ +im +--S/ "idiv" +IA +im +--LI +JA +im +--s= +cl +BA +im +##1. +je +:-s/ jm -:-ex +:-!i // handle += instruction ::+= im @@ -2165,6 +2221,66 @@ jm :-rl next line ::Rt re +// deal with "mul" +::u* +im +--+* +IA +im +##3. +DA +im +--wr +cl +jm +:-rl next line +// deal with "imul" +::s* +im +---* +IA +im +##3. +DA +im +--wr +cl +jm +:-rl next line +// deal with "div" +::u/ +im +--+/ +IA +im +##3. +DA +im +--wr +cl +jm +:-rl next line +// deal with "idiv" +::s/ +im +---/ +IA +im +##3. +DA +im +--wr +cl +jm +:-rl next line +::+* ++* +::-* +-* +::+/ ++/ +::-/ +-/ // bad instruction ::!i im @@ -2311,6 +2427,28 @@ jm 'g 'n \n +::U* "mul" text +'m +'u +'l +\n +::S* "imul" text +'i +'m +'u +'l +\n +::U/ "div" text +'d +'i +'v +\n +::S/ "idiv" text +'i +'d +'i +'v +\n ::IF input file name 'i 'n -- cgit v1.2.3