Compare commits

..

2 Commits

Author SHA1 Message Date
ba4d9afda9 Adding asm & hack samples
Those are the examples and the asm & hack (assembled) from the project 6 of
nand2tetris
2026-05-19 18:57:20 +02:00
0ace0f424a Adding gitignore 2026-05-19 18:55:58 +02:00
12 changed files with 83538 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
out
hack-assembler

12
asm-samples/Add.asm Normal file
View File

@@ -0,0 +1,12 @@
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// Computes R0 = 2 + 3 (R0 refers to RAM[0])
@2
D=A
@3
D=D+A
@0
M=D

6
asm-samples/Add.hack Normal file
View File

@@ -0,0 +1,6 @@
0000000000000010
1110110000010000
0000000000000011
1110000010010000
0000000000000000
1110001100001000

30
asm-samples/Max.asm Normal file
View File

@@ -0,0 +1,30 @@
// 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/6/max/Max.asm
// Computes R2 = max(R0, R1) (R0,R1,R2 refer to RAM[0],RAM[1],RAM[2])
// Usage: Before executing, put two values in R0 and R1.
// D = R0 - R1
@R0
D=M
@R1
D=D-M
// If (D > 0) goto ITSR0
@ITSR0
D;JGT
// Its R1
@R1
D=M
@OUTPUT_D
0;JMP
(ITSR0)
@R0
D=M
(OUTPUT_D)
@R2
M=D
(END)
@END
0;JMP

24
asm-samples/MaxL.asm Normal file
View File

@@ -0,0 +1,24 @@
// 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/6/max/MaxL.asm
// Symbol-less version of the Max.asm program.
// Designed for testing the basic version of the assembler.
@0
D=M
@1
D=D-M
@10
D;JGT
@1
D=M
@12
0;JMP
@0
D=M
@2
M=D
@14
0;JMP

16
asm-samples/MaxL.hack Normal file
View File

@@ -0,0 +1,16 @@
0000000000000000
1111110000010000
0000000000000001
1111010011010000
0000000000001010
1110001100000001
0000000000000001
1111110000010000
0000000000001100
1110101010000111
0000000000000000
1111110000010000
0000000000000010
1110001100001000
0000000000001110
1110101010000111

28375
asm-samples/Pong.asm Normal file

File diff suppressed because it is too large Load Diff

27491
asm-samples/PongL.asm Normal file

File diff suppressed because it is too large Load Diff

27483
asm-samples/PongL.hack Normal file

File diff suppressed because it is too large Load Diff

41
asm-samples/Rect.asm Normal file
View File

@@ -0,0 +1,41 @@
// 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/6/rect/Rect.asm
// Draws a rectangle at the top-left corner of the screen.
// The rectangle is 16 pixels wide and R0 pixels high.
// Usage: Before executing, put a value in R0.
// If (R0 <= 0) goto END else n = R0
@R0
D=M
@END
D;JLE
@n
M=D
// addr = base address of first screen row
@SCREEN
D=A
@addr
M=D
(LOOP)
// RAM[addr] = -1
@addr
A=M
M=-1
// addr = base address of next screen row
@addr
D=M
@32
D=D+A
@addr
M=D
// decrements n and loops
@n
MD=M-1
@LOOP
D;JGT
(END)
@END
0;JMP

33
asm-samples/RectL.asm Normal file
View File

@@ -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/6/rect/RectL.asm
// Symbol-less version of the Rect.asm program.
// Designed for testing the basic version of the assembler.
@0
D=M
@23
D;JLE
@16
M=D
@16384
D=A
@17
M=D
@17
A=M
M=-1
@17
D=M
@32
D=D+A
@17
M=D
@16
MD=M-1
@10
D;JGT
@23
0;JMP

25
asm-samples/RectL.hack Normal file
View File

@@ -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