|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2005
Città: Messina
Messaggi: 15654
|
Aiuto urgente programma MASM
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:
![]() 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..
__________________
CASE: Antec 900 - ALI: Enermax Pro82+ 525W - MOBO: Asus Z97I-Plus - CPU: i7 4770k @ 4.4 Ghz 1.22v - DISSI: Noctua U-14S - RAM: 2x8GB Corsair Vengeance LP @ 1866 Mhz - VGA: GTX 1070 ARMOR 8G OC - Monitor: Acer XF270HU - SSD: Samsung 850 EVO 500 GB MacBook Pro Retina 15" 2018 - i7 6 core, Radeon Pro 560X, 512 GB SSD
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2005
Città: Messina
Messaggi: 15654
|
UP!
__________________
CASE: Antec 900 - ALI: Enermax Pro82+ 525W - MOBO: Asus Z97I-Plus - CPU: i7 4770k @ 4.4 Ghz 1.22v - DISSI: Noctua U-14S - RAM: 2x8GB Corsair Vengeance LP @ 1866 Mhz - VGA: GTX 1070 ARMOR 8G OC - Monitor: Acer XF270HU - SSD: Samsung 850 EVO 500 GB MacBook Pro Retina 15" 2018 - i7 6 core, Radeon Pro 560X, 512 GB SSD
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2011
Messaggi: 381
|
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.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2005
Città: Messina
Messaggi: 15654
|
Quote:
- 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à
__________________
CASE: Antec 900 - ALI: Enermax Pro82+ 525W - MOBO: Asus Z97I-Plus - CPU: i7 4770k @ 4.4 Ghz 1.22v - DISSI: Noctua U-14S - RAM: 2x8GB Corsair Vengeance LP @ 1866 Mhz - VGA: GTX 1070 ARMOR 8G OC - Monitor: Acer XF270HU - SSD: Samsung 850 EVO 500 GB MacBook Pro Retina 15" 2018 - i7 6 core, Radeon Pro 560X, 512 GB SSD
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:31.





















