From d3a0cc3a8ba6dfeb64d3faeffdeb6845b60e5840 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Sat, 20 Jan 2018 15:41:49 +0100 Subject: rearranged the dir for github - removed tools and pdfs - rearranged the projects dirs - added md files - other minor changes --- asms/Fill.asm | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ asms/Mult.asm | 33 ++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 asms/Fill.asm create mode 100644 asms/Mult.asm (limited to 'asms') diff --git a/asms/Fill.asm b/asms/Fill.asm new file mode 100644 index 0000000..16d63e2 --- /dev/null +++ b/asms/Fill.asm @@ -0,0 +1,76 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/04/Fill.asm + +// Runs an infinite loop that listens to the keyboard input. +// When a key is pressed (any key), the program blackens the screen, +// i.e. writes "black" in every pixel; +// the screen should remain fully black as long as the key is pressed. +// When no key is pressed, the program clears the screen, i.e. writes +// "white" in every pixel; +// the screen should remain fully clear as long as no key is pressed. + +// Put your code here. + +(BEGIN) +@KBD +D=M + +@BLACK +D;JNE + +@WHITE +0;JMP + +(BLACK) +@8191 +D=A +@i +M=D + +(LOOPB) +@i +D=M +@j +M=D +@SCREEN +D=A +@j +M=M+D +A=M +M=-1 +@i +M=M-1 +D=M +@LOOPB +D+1;JGT + +@BEGIN +0;JMP + +(WHITE) +@8191 +D=A +@i +M=D + +(LOOPW) +@i +D=M +@j +M=D +@SCREEN +D=A +@j +M=M+D +A=M +M=0 +@i +M=M-1 +D=M +@LOOPW +D+1;JGT + +@BEGIN +0;JMP diff --git a/asms/Mult.asm b/asms/Mult.asm new file mode 100644 index 0000000..50bbba0 --- /dev/null +++ b/asms/Mult.asm @@ -0,0 +1,33 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/04/Mult.asm + +// Multiplies R0 and R1 and stores the result in R2. +// (R0, R1, R2 refer to RAM[0], RAM[1], and RAM[2], respectively.) + +// Put your code here. + +@i +M=0 +@R2 +M=0 + +(LOOP) +@i +M=M+1 +D=M +@R0 +D=D-M +@END +D;JGT +@R1 +D=M +@R2 +M=M+D +@LOOP +0;JMP + +(END) +@END +0;JMP -- cgit v1.2.3