Jeg prøver å skrive et program som skriver inn et positivt tall mindre enn 10 og gir ut summen av de første tallene. For eksempel 5 kan være 4 + 5 + 3 + 2 + 1. Kommandoene er stopp, Load, Store, Legg til, Sum, Multiplisere, Dividere, Input, output, Branch, Branch hvis 0, og gren hvis ikke 0. Kan noen hjelpe meg her. Jeg slags fast. vel det jeg har skrevet er:
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
Vel slik jeg ser det fungerer er du legger noen tall n og legge til en sum av 0, og deretter lagre denne summen som n + sum. Deretter laster du n igjen og trekke fra en og lagre det som ny sum. Men jeg trenger det for å gjenta dette til n ned til 0. Så hvordan gjør jeg dette?
Ok så hva jeg trenger å gjøre er å bruke den grenen dersom 0 og gren hvis ikke 0. Jeg tror jeg har det? så:
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 = Dedikert konstant, men hva jeg må gjenta er subtraheringskret ved ett og tilsetning av summen til n ned til 0. Branch hvis ikke er null er BRGT og gren hvis null er BZ og gren er BR, er LD belastning. Jeg vet hva jeg trenger å gjenta, men jeg vet ikke hvordan du gjør dette i assembly.













