Sto cercando di scrivere un programma che immette un numero positivo minore di 10 ed emette la somma dei numeri primi. Ad esempio 5 sarebbe 5 + 4 + 3 + 2 + 1. I comandi sono Stop, caricare, memorizzare, Aggiungi, Somma, Moltiplica, Dividi, Input, Output, Ramo, Ramo se 0, e il ramo se non 0. Qualcuno mi può dare una mano qui. Sto tipo di bloccato. bene ciò che ho scritto è:
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
Bene il mio modo di vedere di lavoro è di caricare un numero n e aggiunge una somma di 0 e quindi memorizzare questa somma come n + sum. Poi si carica n nuovo e sottrarre 1 e memorizzare che come il nuovo sum. Ma ho bisogno di ripetere questo fino a quando n raggiunge 0. Quindi come faccio a fare questo?
Ok, quindi che cosa devo fare è utilizzare il ramo se 0 e ramo se non 0. penso di avere esso? così:
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 = area costante, ma ciò devo ripetere la sottrazione di uno e aggiungendo la somma fino n raggiunge lo 0. Branch se non zero è BRGT e ramo se zero è BZ e ramo è Br, LD è carico. So quello che ho bisogno di ripetere, ma non so come si esegue questa operazione in linguaggio assembly.













