programmazione IJVM

Area di discussione libera.

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.
Rispondi
nthrx709
Linux 0.x
Linux 0.x
Messaggi: 24
Iscritto il: mar 25 gen 2005, 0:00
Località: Alessandria
Contatta:

programmazione IJVM

Messaggio da nthrx709 »

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>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

programmazione IJVM

Messaggio da useless »

IJVM sta x?<br>

nthrx709
Linux 0.x
Linux 0.x
Messaggi: 24
Iscritto il: mar 25 gen 2005, 0:00
Località: Alessandria
Contatta:

programmazione IJVM

Messaggio da nthrx709 »

. . . 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>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

programmazione IJVM

Messaggio da useless »

spiacente, ma tutto ciò che ha "java" nel nome non fa x me 8-).<br>

Avatar utente
lupix
Linux 1.x
Linux 1.x
Messaggi: 102
Iscritto il: dom 7 nov 2004, 0:00
Nome Cognome: Luciano
Località: Los Angeles

programmazione IJVM

Messaggio da lupix »

Io conosco ijvm!E´ una classica minchiata che insegnano all´universita´!Appena posso vedo di farre qualcosa!:)<br /><br>

nthrx709
Linux 0.x
Linux 0.x
Messaggi: 24
Iscritto il: mar 25 gen 2005, 0:00
Località: Alessandria
Contatta:

programmazione IJVM

Messaggio da nthrx709 »

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>

Rispondi