Files
nand2tetris/projects/04/tests/SumToN.asm
2023-03-24 05:01:10 +01:00

45 lines
487 B
NASM

// Program: Sum1ToN (R0 represents N)
// Computes R1 = 1 + 2 + 3 + ... + R0
// Usage: put a value >= 1 in R0
// i = 1
@i
M=1
// sum = 0
@sum
M=0
(LOOP) // if (i > R0) goto STOP
@i
D=M
@R0
D=D-M
@STOP
D;JGT // sum = sum + i
@sum
D=M
@i
D=D+M
@sum
M=D
// i = i + 1
@i
M=M+1 // goto LOOP
@LOOP
0;JMP
(STOP)
// R1 = sum
@sum
D=M
@R1
M=D // infinite loop
(END)
@END
0;JMP