Snažím se napsat program, který vstupy kladné číslo méně než 10 a výstupy součet prvních čísel. Například 5 by bylo 5 + 3 + 4 + 2 + 1. Tyto příkazy jsou zastavení, Load, Store, přidat, součet, Násobit, Dělit, vstup, výstup, Branch, Branch pokud 0 a větve ne-li 0. Může mi někdo pomoct zde. Jsem trochu zasekl. i to, co jsem napsal je:
IN n
LD n
ADD sum
STO sum
LD n
SUB one
ADD sum
STO sum
BRGT haw
LD n
BR done
haw: OUT sum
done: STOP
DC n 4
DC sum 0
DC one 1
No, jak vidím, že pracovat je načtete nějaké číslo n a přidat částku 0 a pak uložit tuto částku jako součet n +. Pak načtete n znovu a odečteme 1 a uložení, které jako nové částky. Ale musím to opakovat, dokud n dosáhne 0. Tak jak to mám udělat?
Ok, takže to, co musím udělat, je použít pobočky, pokud 0 a pobočku, pokud není 0. Myslím, že jsem to? tak:
IN n
LD n
ADD sum
STO sum
BR CAW
CAW: LD n
SUB ONE
STO n
BRGT HAW
BZ TAW
HAW: ADD SUM
STO SUM
BR CAW
TAW: OUT SUM
DC SUM 0
DC ONE 1
DC = Prostor pro Constant, ale to, co je nutné zopakovat je odečítání po druhém a sečtením až n dosáhne 0. Branch, ne-li nulový, je BRGT a pobočky, pokud je nula BZ a větev je BR, LD je zátěž. Vím, co musím zopakovat, ale já nevím, jak to budete dělat v assembleru.













