22 lines
702 B
Text
22 lines
702 B
Text
// 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/08/ProgramFlow/BasicLoop/BasicLoop.vm
|
|
|
|
// Computes the sum 1 + 2 + ... + argument[0] and pushes the
|
|
// result onto the stack. Argument[0] is initialized by the test
|
|
// script before this code starts running.
|
|
push constant 0
|
|
pop local 0 // initializes sum = 0
|
|
label LOOP_START
|
|
push argument 0
|
|
push local 0
|
|
add
|
|
pop local 0 // sum = sum + counter
|
|
push argument 0
|
|
push constant 1
|
|
sub
|
|
pop argument 0 // counter--
|
|
push argument 0
|
|
if-goto LOOP_START // If counter != 0, goto LOOP_START
|
|
push local 0
|