// 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/4/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.)
// The algorithm is based on repetitive addition.

@R2
M=0
@R1
D=M
@END
D;JEQ
(STEP)
@R2
D=M
@R0
D=D+M
@R2
M=D
@R1
DM=M-1
@STEP
D;JGT
@END