27 lines
776 B
NASM
27 lines
776 B
NASM
|
// 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
|