Adding asm & hack samples
Those are the examples and the asm & hack (assembled) from the project 6 of nand2tetris
This commit is contained in:
12
asm-samples/Add.asm
Normal file
12
asm-samples/Add.asm
Normal 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
6
asm-samples/Add.hack
Normal file
@@ -0,0 +1,6 @@
|
||||
0000000000000010
|
||||
1110110000010000
|
||||
0000000000000011
|
||||
1110000010010000
|
||||
0000000000000000
|
||||
1110001100001000
|
||||
30
asm-samples/Max.asm
Normal file
30
asm-samples/Max.asm
Normal 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
24
asm-samples/MaxL.asm
Normal 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
16
asm-samples/MaxL.hack
Normal 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
28375
asm-samples/Pong.asm
Normal file
File diff suppressed because it is too large
Load Diff
27491
asm-samples/PongL.asm
Normal file
27491
asm-samples/PongL.asm
Normal file
File diff suppressed because it is too large
Load Diff
27483
asm-samples/PongL.hack
Normal file
27483
asm-samples/PongL.hack
Normal file
File diff suppressed because it is too large
Load Diff
41
asm-samples/Rect.asm
Normal file
41
asm-samples/Rect.asm
Normal 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
33
asm-samples/RectL.asm
Normal 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
25
asm-samples/RectL.hack
Normal 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
|
||||
Reference in New Issue
Block a user