diff options
Diffstat (limited to 'projects/hack-as/test')
-rw-r--r-- | projects/hack-as/test/compare.hack | 25 | ||||
-rw-r--r-- | projects/hack-as/test/conventional.asm | 32 | ||||
-rw-r--r-- | projects/hack-as/test/valid.asm | 29 |
3 files changed, 86 insertions, 0 deletions
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 |