allocate-registers n, i, value, one, loop-decision, end, done li one 1 li loop-decision loop-decision-label li end end-label read n li i 1 loop-decision-label: sle done i n jeqz done end mul value i i mul value value i write value add i i one j loop-decision end-label: halt