View Full Version : Aiuto urgente programma MASM
rizzotti91
06-02-2012, 19:06
Ciao a tutti, ho urgente bisogno di un piccolo (grande) aiuto riguardo la stesura di un programmino in assembler, lasciato come compito. Il testo è il seguente:
http://img822.imageshack.us/img822/9194/tayler.jpg (http://imageshack.us/photo/my-images/822/tayler.jpg/)
Non so assolutamente come svolgerlo, o meglio le singole operazioni le so fare,però le lezioni all'uni si sono svolte con una velocità assurda che non ci hanno permesso di apprendere a pieno il linguaggio.
Spero che qualcuno mi sappia aiutare..
rizzotti91
07-02-2012, 07:38
UP!
starfred
07-02-2012, 10:32
Premesso che non si possono dare soluzioni intere di esercizi, ti posso consigliare come svolgere il tutto:
Per prima cosa devi leggere l'esponente X, quindi dovrai fare:
1) Inserimento da tastiera di codifiche ASCII di cifre decimali
2) Conversione da decimale a binario
A questo punto hai il tuo bel esponente X in base_2 in un registro. Se X è maggiore di 1 procedi. Altrimenti ritorna.
A questo punto devi decidere la precisione della formula di Taylor, supponiamo che si arriva al 8!
Ora si procede così:
1) Si prende un registro che farà da contatore che sarà, nel nostro caso, uguale a 8
2) Si crea un sottoprogramma per il calcolo del fattoriale
3) Si crea un sottoprogramma per il calcolo dell'esponenziale (è un semplice shift register)
6) Si mettono 1 e x in pila (prima 1 e poi x)
7) Si calcola x^contatore e contatore!
8) Si esegue la divisione dei due valori e si mette il risultato in pila
9) Si decrementa il contatore di 1. Se il contatore è > 1 allora riparti dal punto 7 altrimenti altrimenti vai al punto 10
10) Estraggo dalla pila 1 elemento e lo metto in un registro
11) Estraggo dalla pila 1 elemento e lo metto in un altro registro
12) Faccio la somma.
13) Se l'elemento estratto al punto 11 è diverso da 1 allora ritorno al punto 11 altrimenti vado al punto 14
14) Faccio la conversione dell'ultima somma da Binario a decimale a ASCII
15) Stampo il valore e termino il programma.
rizzotti91
07-02-2012, 12:11
Premesso che non si possono dare soluzioni intere di esercizi, ti posso consigliare come svolgere il tutto:
Per prima cosa devi leggere l'esponente X, quindi dovrai fare:
1) Inserimento da tastiera di codifiche ASCII di cifre decimali
2) Conversione da decimale a binario
A questo punto hai il tuo bel esponente X in base_2 in un registro. Se X è maggiore di 1 procedi. Altrimenti ritorna.
A questo punto devi decidere la precisione della formula di Taylor, supponiamo che si arriva al 8!
Ora si procede così:
1) Si prende un registro che farà da contatore che sarà, nel nostro caso, uguale a 8
2) Si crea un sottoprogramma per il calcolo del fattoriale
3) Si crea un sottoprogramma per il calcolo dell'esponenziale (è un semplice shift register)
6) Si mettono 1 e x in pila (prima 1 e poi x)
7) Si calcola x^contatore e contatore!
8) Si esegue la divisione dei due valori e si mette il risultato in pila
9) Si decrementa il contatore di 1. Se il contatore è > 1 allora riparti dal punto 7 altrimenti altrimenti vai al punto 10
10) Estraggo dalla pila 1 elemento e lo metto in un registro
11) Estraggo dalla pila 1 elemento e lo metto in un altro registro
12) Faccio la somma.
13) Se l'elemento estratto al punto 11 è diverso da 1 allora ritorno al punto 11 altrimenti vado al punto 14
14) Faccio la conversione dell'ultima somma da Binario a decimale a ASCII
15) Stampo il valore e termino il programma.
Ciao ti ringrazio il tempo che hai perso nel darmi la risposta... capisco che forse è chiedere troppo un esercizio completo, però ci sono cose che hai elencato, che il professore non ha per niente spiegato, ovvero:
- conversione binario decimale ed ad ASCII
- shift register
- pop e push
- come fare i sottoprogrammi, come richiamarli...
In pratica capisci tu stesso che praticamente non ci ha spiegato le cose base per poter poi svolgere un esercizio del genere, però l'ha lasciato nell'esame e domani vorrà sentirmi proprio su quest'esercizio, per questo vorrei quanto meno qualche parte di codice in modo da poterla studiare... scusate tanto il disturbo e grazie davvero a te per l'enorme disponibilità :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.