mirror of
https://github.com/soconnor0919/eceg431.git
synced 2025-12-11 22:54:43 -05:00
24 lines
721 B
Plaintext
24 lines
721 B
Plaintext
// 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/8/ProgramFlow/BasicLoop/BasicLoop.vm
|
|
|
|
// Computes the sum 1 + 2 + ... + n and pushes the result onto
|
|
// the stack. The value n is given in argument[0], which must be
|
|
// initialized by the caller of this code.
|
|
|
|
push constant 0
|
|
pop local 0 // sum = 0
|
|
label LOOP
|
|
push argument 0
|
|
push local 0
|
|
add
|
|
pop local 0 // sum = sum + n
|
|
push argument 0
|
|
push constant 1
|
|
sub
|
|
pop argument 0 // n--
|
|
push argument 0
|
|
if-goto LOOP // if n > 0, goto LOOP
|
|
push local 0 // else, pushes sum to the stack's top
|