|
Problema: Determinare il numero di radici reali (diverse) di un'equazione di 2° grado con coefficienti a, b e c. Discussione: Si calcola il discriminante (b2-4ac) e poi se (Δ > 0) ..., se (Δ = 0) ... altrimenti (Δ < 0) ... Programma: PROG RUN ' INP a ' INP b ' INP c ' LDA #4 ' ... MUL a ' ... MUL c ' ... STA a ' a <-- 4ac LDA b ' ... MUL b ' ... SUB a ' ACC <-- b2-4ac JGT DUE ' SE(Δ > 0): ... JEQ UNA ' SE(Δ = 0): ... JMP NESS ' SE(Δ < 0): ... DUE LDA #2 ' STA a ' JMP RISP ' UNA LDA #1 ' STA a ' JMP RISP ' NESS LDA #0 ' STA a ' RISP OUT a ' ALT ' a DAT ' b DAT ' c DAT ' END ' La variabile a è utilizzata per l'input, come appoggio per i calcoli e per l'output... Risparmiare qualcosa? PROG RUN ' INP a ' INP b ' INP c ' LDA #4 ' MUL a ' MUL c ' STA a ' a <-- 4ac LDA b ' MUL b ' SUB a ' ACC <-- b2-4ac JGT DUE ' SE(Δ > 0): ... JEQ UNA ' SE(Δ = 0): ... LDA #0 ' JMP RISP ' SE(Δ < 0): ... DUE LDA #2 ' JMP RISP ' UNA LDA #1 ' RISP STA a ' OUT a ' ALT ' a DAT ' b DAT ' c DAT ' END ' |
|