From 6b9d8f151cc04a0590a7fed80ae5b8eb3928952a Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Sun, 21 Aug 2022 22:08:53 +0800 Subject: Move hack-as up one directory --- projects/hack-as/test/compare.hack | 25 +++++++++++++++++++++++++ projects/hack-as/test/conventional.asm | 32 ++++++++++++++++++++++++++++++++ projects/hack-as/test/valid.asm | 29 +++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 projects/hack-as/test/compare.hack create mode 100644 projects/hack-as/test/conventional.asm create mode 100644 projects/hack-as/test/valid.asm (limited to 'projects/hack-as/test') diff --git a/projects/hack-as/test/compare.hack b/projects/hack-as/test/compare.hack new file mode 100644 index 0000000..f33a9d1 --- /dev/null +++ b/projects/hack-as/test/compare.hack @@ -0,0 +1,25 @@ +0000000000000000 +1111110000010000 +0000000000010111 +1110001100000110 +0000000000010000 +1110001100001000 +0100000000000000 +1110110000010000 +0000000000010001 +1110001100001000 +0000000000010001 +1111110000100000 +1110111010001000 +0000000000010001 +1111110000010000 +0000000000100000 +1110000010010000 +0000000000010001 +1110001100001000 +0000000000010000 +1111110010011000 +0000000000001010 +1110001100000001 +0000000000010111 +1110101010000111 diff --git a/projects/hack-as/test/conventional.asm b/projects/hack-as/test/conventional.asm new file mode 100644 index 0000000..5510424 --- /dev/null +++ b/projects/hack-as/test/conventional.asm @@ -0,0 +1,32 @@ +// conventional asm a sane person would write +// draw a rectangle on top left of screen +// width 16px, height specified in RAM[0] +@0 +D=M +@INFINITE_LOOP +D;JLE // reject if height is negative +@counter +M=D +@SCREEN +D=A +@address +M=D +(LOOP) + @address + A=M + M=-1 + @address + D=M + @32 + D=D+A + @address + M=D + @counter + MD=M-1 + @LOOP + D;JGT + +(INFINITE_LOOP) + @INFINITE_LOOP + 0;JMP + diff --git a/projects/hack-as/test/valid.asm b/projects/hack-as/test/valid.asm new file mode 100644 index 0000000..d705f1e --- /dev/null +++ b/projects/hack-as/test/valid.asm @@ -0,0 +1,29 @@ +// valid asm, but with unnecessary whitespace, = and ; +@ 0 // unnecessary space +D=M +@INFINITE_LOOP +=D;JLE // unnecessary = +@counter +M=D; // unnecessary ; +@SCREEN +D = A // unnecessary spaces +@address +M = D; // unnecessary spaces and ; +( LOOP ) // unnecessary spaces + @address + A=M + M=-1 + @address + D=M + @32 + D=D+A + @address + M=D + @counter + MD=M-1 + @LOOP + D;JGT + +(INFINITE_LOOP) + @INFINITE_LOOP + 0;JMP -- cgit v1.2.3