mirror of
https://github.com/captn3m0/nand2tetris.git
synced 2024-09-28 22:23:06 +00:00
44 lines
537 B
NASM
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
|