;; This program reads in a non-negative integer n and prints the sum ;; 1+2+...+n. allocate-registers n cont sumToN sum count test one loop li sumToN sumToNL li loop loopL li one 1 read n li cont afterL j sumToN afterL: write sum halt sumToNL: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; input: n ;; return value: sum ;; return address: cont ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; li sum 0 li count 1 loopL: sle test count n ;if !(count <= n) j cont jeqz test cont add sum sum count add count count one j loop