|
Problema: calcolare la media dei numeri inseriti da tastiera. Per terminare la fase d'inserimento inseriamo 0 (zero). Esempi: ... Diagramma di flusso: ... Programma: PROG RUN ' ' SU INP X ' LDA X ' JEQ FINE ' SE(X = 0) PC <-- FINE ADD SOMMA ' STA SOMMA ' SOMMA <-- SOMMA+X ' LDA CONT ' ADD #1 ' CONT <-- CONT+1 STA CONT ' ' JMP SU ' ' FINE LDA SOMMA ' DIV CONT ' SOMMA <-- SOMMA/CONT STA SOMMA ' OUT SOMMA ' ALT ' X DAT 0 ' CONT DAT 0 ' SOMMA DAT 0 ' END ' Se il primo valore inserito è 0 allora ci sarà una divisione per zero! Aggiungiamo un controllo prima di dividere... PROG RUN ' SU INP X ' LDA X ' JEQ FINE? ' SE(X = 0) PC <-- FINE? ADD SOMMA ' STA SOMMA ' SOMMA <-- SOMMA+X LDA CONT ' ADD #1 ' CONT <-- CONT+1 STA CONT ' JMP SU ' ' FINE? LDA CONT ' JEQ FINE ' SE(CONT = 0) PC <-- FINE ' LDA SOMMA ' DIV CONT ' SOMMA <-- SOMMA/CONT STA SOMMA ' FINE OUT SOMMA ' ALT ' X DAT 0 ' CONT DAT 0 ' SOMMA DAT 0 ' END ' |
|