Προσπαθώ να γράψω ένα πρόγραμμα που εισάγει ένα θετικό αριθμό μικρότερο από 10 και εξάγει το άθροισμα των πρώτων αριθμών. Για παράδειγμα 5 θα ήταν 5 + 4 + 3 + 2 + 1. Οι εντολές είναι στάση, φορτίου, Κατάστημα, Προσθήκη, Sum, Πολλαπλασιασμός, Διαίρεση, εισόδου, εξόδου, υποκατάστημα, Υποκατάστημα αν 0, και κλάδο αν δεν 0. Μπορεί κάποιος να με βοηθήσει εδώ. Είμαι το είδος του κολλήσει. καλά τι έχω γράψει είναι:
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
Λοιπόν ο τρόπος που βλέπω αυτό που εργάζονται είναι να φορτώσετε κάποιο αριθμό n και να προσθέσετε ένα ποσό των 0 και στη συνέχεια να αποθηκεύσετε αυτό το ποσό ως n + ποσού. Στη συνέχεια θα φορτώσετε n πάλι και αφαιρούμε 1 και αποθηκεύστε ότι το νέο ποσό. Αλλά εγώ θα πρέπει να επαναλάβετε αυτό έως ότου η φτάσει το 0. Έτσι, πώς μπορώ να το κάνω αυτό;
Εντάξει έτσι αυτό που χρειάζεται να κάνετε είναι να χρησιμοποιήσετε τον κλάδο, αν 0 και κλάδο, αν δεν 0. νομίζω ότι το έχουν; Έτσι:
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 = Ειδικός Constant, αλλά αυτό που πρέπει να επαναλάβετε είναι η αφαιρέσεων από ένα και προσθέτοντας το άθροισμα μέχρι n φτάσει το 0. Branch αν δεν είναι μηδέν BRGT και υποκατάστημα εάν μηδέν είναι ΒΖ και υποκατάστημα είναι BR, LD είναι φορτίο. Ξέρω τι χρειάζεται να επαναλάβω, αλλά δεν ξέρω πώς να το κάνετε αυτό σε συμβολική γλώσσα.













