From 6033b21c49f3d5a4d0cb7356880e01af97c5c2ed Mon Sep 17 00:00:00 2001 From: Konarak Date: Tue, 7 Dec 2021 21:48:15 +0530 Subject: [PATCH] optimize Mult and Fill assembly --- projects/04/fill/Fill.asm | 33 +++++++++------------------------ projects/04/mult/Mult.asm | 18 +++++------------- 2 files changed, 14 insertions(+), 37 deletions(-) diff --git a/projects/04/fill/Fill.asm b/projects/04/fill/Fill.asm index 6cc2244..3c1bbd6 100644 --- a/projects/04/fill/Fill.asm +++ b/projects/04/fill/Fill.asm @@ -29,11 +29,6 @@ M=D @itr M=0 -// black if pix = -1 -// white if pix = 0 -@pix -M=-1 - // loop declaration // D = reg - itr // if 0 jump to @END @@ -72,33 +67,30 @@ M=M+1 // clear the screen if no key pressed: // pix = 0 -// itr = 0 -// addr = 16384 // back to loop declaration (CLEAR) @pix M=0 -@itr -M=0 - -@SCREEN -D=A -@addr -M=D - @LOOP 0;JMP // paint the screen if no key pressed: // pix = -1 -// itr = 0 -// addr = 16384 // back to loop declaration (PAINT) @pix M=-1 +@LOOP +0;JMP + +// main feedback loop +// itr = 0 +// addr = 16384 +// jump to @CLEAR if no key pressed +// jump to @PAINT if any key pressed + (END) @itr M=0 @@ -107,13 +99,6 @@ D=A @addr M=D -@LOOP -0;JMP - -// main feedback loop -// jump to @CLEAR if no key pressed -// jump to @PAINT if any key pressed - (END) @KBD D=M @CLEAR diff --git a/projects/04/mult/Mult.asm b/projects/04/mult/Mult.asm index 484254e..ec31f1e 100644 --- a/projects/04/mult/Mult.asm +++ b/projects/04/mult/Mult.asm @@ -13,10 +13,9 @@ // variable names are selfexplanatory // itr temporary register at RAM[16] -// sum temporary register at RAM[17] -@itr +@R2 M=0 -@sum +@itr M=0 // loop declaration @@ -28,14 +27,14 @@ M=0 D=M @R1 D=D-M -@STOP +@END D;JEQ -// sum = R0 + sum +// R2 = R0 + R2 // itr = itr + 1 @R0 D=M -@sum +@R2 M=D+M @itr M=M+1 @@ -44,13 +43,6 @@ M=M+1 @LOOP 0;JMP -// R2 = sum - (STOP) -@sum -D=M -@R2 -M=D - // loopy loop (END) @END