programmazione IJVM
Moderatore: Staff
Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
programmazione IJVM
ciao a tutti, avrei un problemino. . . <br />
<BR>devo fare un progetto in linguaggio IJVM, c´e´ nessuno che lo sa usare e che mi puo´ dare una mano?<br />
<BR>Basta qualche dritta...<br />
<BR><br />
<BR><br />
<BR><p>Scrivere un programma IJVM che legga da tastiera una sequenza di caratteri
<BR> terminata con un ritorno a capo, interpreti i caratteri (se caratteri corrispondenti
<BR> alle cifre decimali) come un numero in base 10 (positivo o negativo) e ne
<BR> calcoli la rappresentazione Floating Point normalizzata in precisione singola
<BR> (su 32 bit) secondo lo standard IEEE 754. La rappresentzione così
<BR>ottenuta deve essere stampata a video sullo standard output del simulatore.
<BR><br />
<BR> I numeri da rappresentare sono SOLO quelli SENZA cifre decimali (ovvero
<BR>gli interi); i numeri negativi sono preceduti dal segno -. <br />
<BR> Esempi: 233, -98834, 12, -3 etc. <br />
<BR> Il programma dovrà essere strutturato in metodi: <br />
<BR> 1. un metodo per la lettura dei caratteri; <br />
<BR> 2. un metodo che realizzi la conversione e restituisca in cima allo stack
<BR> la parola di 32 bit che rappresenta secondo lo standard IEEE 754 il numero
<BR> letto in ingresso; <br />
<BR> 3. un metodo che stampi il numero così convertito sullo standard
<BR>output del simulatore (come esadecimale). </p>
<BR>
<BR>
<BR><br />
<BR>grazie a tutti<br /><br>
<BR>devo fare un progetto in linguaggio IJVM, c´e´ nessuno che lo sa usare e che mi puo´ dare una mano?<br />
<BR>Basta qualche dritta...<br />
<BR><br />
<BR><br />
<BR><p>Scrivere un programma IJVM che legga da tastiera una sequenza di caratteri
<BR> terminata con un ritorno a capo, interpreti i caratteri (se caratteri corrispondenti
<BR> alle cifre decimali) come un numero in base 10 (positivo o negativo) e ne
<BR> calcoli la rappresentazione Floating Point normalizzata in precisione singola
<BR> (su 32 bit) secondo lo standard IEEE 754. La rappresentzione così
<BR>ottenuta deve essere stampata a video sullo standard output del simulatore.
<BR><br />
<BR> I numeri da rappresentare sono SOLO quelli SENZA cifre decimali (ovvero
<BR>gli interi); i numeri negativi sono preceduti dal segno -. <br />
<BR> Esempi: 233, -98834, 12, -3 etc. <br />
<BR> Il programma dovrà essere strutturato in metodi: <br />
<BR> 1. un metodo per la lettura dei caratteri; <br />
<BR> 2. un metodo che realizzi la conversione e restituisca in cima allo stack
<BR> la parola di 32 bit che rappresenta secondo lo standard IEEE 754 il numero
<BR> letto in ingresso; <br />
<BR> 3. un metodo che stampi il numero così convertito sullo standard
<BR>output del simulatore (come esadecimale). </p>
<BR>
<BR>
<BR><br />
<BR>grazie a tutti<br /><br>
- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
programmazione IJVM
IJVM sta x?<br>
programmazione IJVM
. . . beh effettivamente visto cosi´ quel nome non dice un gran che´...<br />
<BR>ijvm sta per "integer java virtual machine", e´ un linguaggio di
<BR>basso livello che stiamo facendo all´universita´ in un corso di
<BR>architetture degli elaboratori 2. . .<br />
<BR>io prima di questo corso non lo avevo mai sentito nominare, e comprendo
<BR>perfettamente le vostre perplessita´ nel vedere questa sigla. . .<br />
<BR>spero che qualcuno abbia gia´ conoscenze di questo linguaggio. . . la speranza e´ l´ultima a morire. . . <a href="J A V A S C R I P T: x()" onclick="dosmilie(´ :-] ´);"><img hspace="5" border="0" src="modules/splatt_forums/images/smilies/blue/icon_cheesygrin.gif" alt=":-|" /></a><BR><BR>[ Questo Messaggio è stato Modificato da: nthrx709 il 26-05-2005 22:55 ]<br>
<BR>ijvm sta per "integer java virtual machine", e´ un linguaggio di
<BR>basso livello che stiamo facendo all´universita´ in un corso di
<BR>architetture degli elaboratori 2. . .<br />
<BR>io prima di questo corso non lo avevo mai sentito nominare, e comprendo
<BR>perfettamente le vostre perplessita´ nel vedere questa sigla. . .<br />
<BR>spero che qualcuno abbia gia´ conoscenze di questo linguaggio. . . la speranza e´ l´ultima a morire. . . <a href="J A V A S C R I P T: x()" onclick="dosmilie(´ :-] ´);"><img hspace="5" border="0" src="modules/splatt_forums/images/smilies/blue/icon_cheesygrin.gif" alt=":-|" /></a><BR><BR>[ Questo Messaggio è stato Modificato da: nthrx709 il 26-05-2005 22:55 ]<br>
- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
programmazione IJVM
spiacente, ma tutto ciò che ha "java" nel nome non fa x me
.<br>
- lupix
- Linux 1.x

- Messaggi: 102
- Iscritto il: dom 7 nov 2004, 0:00
- Nome Cognome: Luciano
- Località: Los Angeles
programmazione IJVM
Io conosco ijvm!E´ una classica minchiata che insegnano all´universita´!Appena posso vedo di farre qualcosa!:)<br /><br>
programmazione IJVM
Probabilmente non interessera´ a nessuno, comunque la prima parte dell´
<BR>esercizio che riguarda l´inserimento dei numeri e´ stata risolta,
<BR>mancano i metodi x la conversione in IEEE754 e per la
<BR>stampa. . .<br />
<BR>qui sotto c´e´ la mia soluzione alla parte dell´ inserimento.<br />
<BR>se ci sono idee x il resto io sono aperto a tutte le soluzioni
<br />
<BR><br />
<BR><br />
<BR>.constant<br />
<BR>objref 0x40<br />
<BR>.end-constant<br />
<BR><br />
<BR>.main<br />
<BR><br />
<BR>.var<br />
<BR>num_inserito<br />
<BR>.end-var<br />
<BR><br />
<BR>ldc_w objref<br />
<BR>invokevirtual inserimento<br />
<BR>istore num_inserito<br />
<BR>iload num_inserito<br />
<BR>halt<br />
<BR>.end-main<br />
<BR><br />
<BR>.method inserimento ()<br />
<BR>.var<br />
<BR>negativo<br />
<BR>numero<br />
<BR>tmp<br />
<BR>primo<br />
<BR>.end-var<br />
<BR><br />
<BR>bipush 0x0<br />
<BR>dup<br />
<BR>dup<br />
<BR>dup<br />
<BR>istore numero<br />
<BR>istore tmp<br />
<BR>istore negativo<br />
<BR>istore primo<br />
<BR><br />
<BR>getch:<br />
<BR> in<br />
<BR> dup<br />
<BR> dup<br />
<BR> bipush 0x2D <br />
<BR> if_icmpeq numero_negativo // confronto il valore inserito con il "-"<br />
<BR> bipush 0xA<br />
<BR> if_icmpeq fine_inserimento // confronto il valore inserito con "invio"<br />
<BR> dup<br />
<BR> ifeq reread //se la in legge 0 rilegge<br />
<BR> iload negativo<br />
<BR> ifeq goto_done<br />
<BR> iload primo<br />
<BR> ifeq incrementa_primo <br />
<BR>goto_done:<br />
<BR> goto done<br />
<BR>incrementa_primo:<br />
<BR> iinc primo 0x1<br />
<BR> goto goto_done<br />
<BR>reread:<br />
<BR> pop<br />
<BR> goto getch<br />
<BR>done:<br />
<BR> bipush 0x30<br />
<BR> isub<br />
<BR> istore tmp<br />
<BR> iload primo<br />
<BR> ifeq torna_a_getch<br />
<BR> iload numero<br />
<BR> bipush 0x10<br />
<BR> imul<br />
<BR> iload tmp<br />
<BR> iadd<br />
<BR> istore numero<br />
<BR> goto getch<br />
<BR>torna_a_getch:<br />
<BR> iload negativo<br />
<BR> bipush 0x1<br />
<BR> if_icmpeq getch<br />
<BR> bipush 0x1<br />
<BR> istore primo<br />
<BR> iload tmp<br />
<BR> istore numero<br />
<BR> goto getch<br />
<BR>numero_negativo:<br />
<BR> pop<br />
<BR> pop<br />
<BR> bipush 0x1<br />
<BR> istore negativo<br />
<BR> goto torna_a_getch<br />
<BR>fine_inserimento:<br />
<BR> pop<br />
<BR> iload negativo<br />
<BR> bipush 0x1<br />
<BR> if_icmpeq fine_neg<br />
<BR> iload numero<br />
<BR> ireturn<br />
<BR>fine_neg:<br />
<BR> iload numero<br />
<BR> not<br />
<BR> istore numero<br />
<BR> iinc numero 0x1<br />
<BR> iload numero<br />
<BR> ireturn<br />
<BR>.end-method<br />
<BR><br />
<BR><br /><br>
<BR>esercizio che riguarda l´inserimento dei numeri e´ stata risolta,
<BR>mancano i metodi x la conversione in IEEE754 e per la
<BR>stampa. . .<br />
<BR>qui sotto c´e´ la mia soluzione alla parte dell´ inserimento.<br />
<BR>se ci sono idee x il resto io sono aperto a tutte le soluzioni
<BR><br />
<BR><br />
<BR>.constant<br />
<BR>objref 0x40<br />
<BR>.end-constant<br />
<BR><br />
<BR>.main<br />
<BR><br />
<BR>.var<br />
<BR>num_inserito<br />
<BR>.end-var<br />
<BR><br />
<BR>ldc_w objref<br />
<BR>invokevirtual inserimento<br />
<BR>istore num_inserito<br />
<BR>iload num_inserito<br />
<BR>halt<br />
<BR>.end-main<br />
<BR><br />
<BR>.method inserimento ()<br />
<BR>.var<br />
<BR>negativo<br />
<BR>numero<br />
<BR>tmp<br />
<BR>primo<br />
<BR>.end-var<br />
<BR><br />
<BR>bipush 0x0<br />
<BR>dup<br />
<BR>dup<br />
<BR>dup<br />
<BR>istore numero<br />
<BR>istore tmp<br />
<BR>istore negativo<br />
<BR>istore primo<br />
<BR><br />
<BR>getch:<br />
<BR> in<br />
<BR> dup<br />
<BR> dup<br />
<BR> bipush 0x2D <br />
<BR> if_icmpeq numero_negativo // confronto il valore inserito con il "-"<br />
<BR> bipush 0xA<br />
<BR> if_icmpeq fine_inserimento // confronto il valore inserito con "invio"<br />
<BR> dup<br />
<BR> ifeq reread //se la in legge 0 rilegge<br />
<BR> iload negativo<br />
<BR> ifeq goto_done<br />
<BR> iload primo<br />
<BR> ifeq incrementa_primo <br />
<BR>goto_done:<br />
<BR> goto done<br />
<BR>incrementa_primo:<br />
<BR> iinc primo 0x1<br />
<BR> goto goto_done<br />
<BR>reread:<br />
<BR> pop<br />
<BR> goto getch<br />
<BR>done:<br />
<BR> bipush 0x30<br />
<BR> isub<br />
<BR> istore tmp<br />
<BR> iload primo<br />
<BR> ifeq torna_a_getch<br />
<BR> iload numero<br />
<BR> bipush 0x10<br />
<BR> imul<br />
<BR> iload tmp<br />
<BR> iadd<br />
<BR> istore numero<br />
<BR> goto getch<br />
<BR>torna_a_getch:<br />
<BR> iload negativo<br />
<BR> bipush 0x1<br />
<BR> if_icmpeq getch<br />
<BR> bipush 0x1<br />
<BR> istore primo<br />
<BR> iload tmp<br />
<BR> istore numero<br />
<BR> goto getch<br />
<BR>numero_negativo:<br />
<BR> pop<br />
<BR> pop<br />
<BR> bipush 0x1<br />
<BR> istore negativo<br />
<BR> goto torna_a_getch<br />
<BR>fine_inserimento:<br />
<BR> pop<br />
<BR> iload negativo<br />
<BR> bipush 0x1<br />
<BR> if_icmpeq fine_neg<br />
<BR> iload numero<br />
<BR> ireturn<br />
<BR>fine_neg:<br />
<BR> iload numero<br />
<BR> not<br />
<BR> istore numero<br />
<BR> iinc numero 0x1<br />
<BR> iload numero<br />
<BR> ireturn<br />
<BR>.end-method<br />
<BR><br />
<BR><br /><br>
