nand2tetris/projects/04/mult/mult.asm

44 lines
537 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/04/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.)
@R2
M=0
// Put your code here.
(LOOP)
@R0
D=M
// Jump to end if R0 = 0
@END
D;JEQ
@R2
D=M
@R1
// Increase D by R1
D=D+M
// Save final value back to result
@R2
M=D
// R0=R0-1
@R0
M=M-1
// Otherwise, go to loop
@LOOP
0;JMP
(END)
@END
0;JMP