summaryrefslogtreecommitdiff
path: root/projects/06/max/Max.asm
diff options
context:
space:
mode:
Diffstat (limited to 'projects/06/max/Max.asm')
-rw-r--r--projects/06/max/Max.asm26
1 files changed, 26 insertions, 0 deletions
diff --git a/projects/06/max/Max.asm b/projects/06/max/Max.asm
new file mode 100644
index 0000000..b62c138
--- /dev/null
+++ b/projects/06/max/Max.asm
@@ -0,0 +1,26 @@
+// 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/06/max/Max.asm
+
+// Computes R2 = max(R0, R1) (R0,R1,R2 refer to RAM[0],RAM[1],RAM[2])
+
+ @R0
+ D=M // D = first number
+ @R1
+ D=D-M // D = first number - second number
+ @OUTPUT_FIRST
+ D;JGT // if D>0 (first is greater) goto output_first
+ @R1
+ D=M // D = second number
+ @OUTPUT_D
+ 0;JMP // goto output_d
+(OUTPUT_FIRST)
+ @R0
+ D=M // D = first number
+(OUTPUT_D)
+ @R2
+ M=D // M[2] = D (greatest number)
+(INFINITE_LOOP)
+ @INFINITE_LOOP
+ 0;JMP // infinite loop