Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - IJVM
Forum - Altri Linguaggi - IJVM - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
MiDDiO (Normal User)
Newbie


Messaggi: 9
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 10:36
Mercoledì, 22/07/2009
questo è tutto il codice spero di aver mezzo giusto objref che mi avevi detto... cmq grazie mille per il tuo aiuto ;)

Codice sorgente - presumibilmente Altri Linguaggi

  1. .constant
  2. esadecimale      0x33   // numero 2 in esadecimale
  3. masknumerico1    0x-10 // maschera posta in complemento a due per controllare i 4 bit più significativi
  4. masknumerico2    0x30  // maschera per controllare se è nei numerici
  5. masknumerico3    0xF   // maschera per tirar fuori gli ultimi 4 bit
  6. masknumerico4    0xA   // maschera per confrontare se è nel limite superiore dei numerici
  7. Objref           0x00
  8. .end-constant
  9.  
  10. .main
  11. ldc_w Objref
  12. ldc_w esadecimale
  13. invokevirtual isnum
  14. halt
  15. .end-main
  16.  
  17. .method isnum(v)
  18. ldc_w masknumerico1
  19. iload v
  20. iand
  21. ldc_w masknumerico2
  22. if_icmpeq controllo2   // se è vero non sara numerico, altrimenti bisogna fare il controllo per vedere se è minore di 0x3A
  23. bipush 0
  24. ireturn
  25.  
  26. controllo2:
  27. ldc_w masknumerico3
  28. iload v
  29. iand
  30. ldc_w masknumerico4
  31. isub
  32. iflt Numerico   // confronto se è minore di 0x3A se falso 0 nel TOS altrimenti 1
  33. bipush 0
  34. ireturn
  35.  
  36. Numerico:
  37. bipush 1
  38. ireturn
  39. .end-method



cmq dopo l'aggiunta di objref invece che bipush 0
l'errore ora è un altro ma penso che conti le righe perche sono sempre quelle  cmq te lo inserisco qui sotto


MiDDiO ha allegato un file: Immagine.jpg (77752 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 13:34
Mercoledì, 22/07/2009
penso che l' errore sia nella dichiarazione della costante:
masknumerico1    0x-10
devi invece assegnarle: -0x10 oppure il conplemento a 2 0xF0, ma è molto meglio -0x10

PM Quote
Avatar
MiDDiO (Normal User)
Newbie


Messaggi: 9
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 15:23
Mercoledì, 22/07/2009
ho provato a cambiare con -0x10 ma da un altro errore io non so piu dove sbattere la testa... cmq ti posto l'errore nuovo che crea


MiDDiO ha allegato un file: Immagine.jpg (75362 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 16:19
Mercoledì, 22/07/2009
io ho modificato il tuo codice così e mi funziona

Codice sorgente - presumibilmente Altri Linguaggi

  1. .constant
  2. esadecimale      0x33   // numero 2 in esadecimale
  3. masknumerico1    -0x10 // maschera posta in complemento a due per controllare i 4 bit più significativi
  4. masknumerico2    0x30  // maschera per controllare se è nei numerici
  5. masknumerico3    0xF   // maschera per tirar fuori gli ultimi 4 bit
  6. masknumerico4    0xA   // maschera per confrontare se è nel limite superiore dei numerici
  7. objref           0xEE
  8. .end-constant
  9.  
  10. .main
  11.         ldc_w objref
  12.         ldc_w esadecimale
  13.         invokevirtual isnum
  14.         halt
  15. .end-main
  16.  
  17. .method isnum(v)
  18.         ldc_w masknumerico1
  19.         iload v
  20.         iand
  21.         ldc_w masknumerico2
  22.         if_icmpeq controllo2   // se è vero non sara numerico, altrimenti bisogna fare il controllo per vedere se è minore di 0x3A
  23.         bipush 0
  24.         ireturn
  25.  
  26. controllo2:
  27.         ldc_w masknumerico3
  28.         iload v
  29.         iand
  30.         ldc_w masknumerico4
  31.         isub
  32.         iflt Numerico   // confronto se è minore di 0x3A se falso 0 nel TOS altrimenti 1
  33.         bipush 0
  34.         ireturn
  35.  
  36. Numerico:
  37.         bipush 1
  38.         ireturn
  39. .end-method



se non dovesse andare ancora sostituisci -0x10 con 0xf0

fammmi sapere

PM Quote
Avatar
MiDDiO (Normal User)
Newbie


Messaggi: 9
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 15:52
Giovedì, 23/07/2009
allora ora funziona ma usando 0xF0 non so perche non mi fa usa il complemento... cmq grazie mille ancora... se avro altri problemi e mi vorrai aiutare so a chi chiedere grazie di cuore..

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 16:56
Giovedì, 23/07/2009
figurati, chiedi pure quando vuoi
se non rispondo magari è xk non ho visto il post, mandami pure un messaggio

PM Quote
Avatar
MiDDiO (Normal User)
Newbie


Messaggi: 9
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 12:10
Lunedì, 27/07/2009
Piccola notifica oggi ho provato a mettere 0x-10 e adesso funzina non so dirti perchè o per come ma ora funziona :-|. L'unica cosa che non capivo è l'obj perchè è messo a 0xEE e non 0x00 cioè svuotato.

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 13:08
Lunedì, 27/07/2009
l' objref può assumere qualsiesi valore, io di solito uso 0x0, avevo usato 0xee solo per riconoscerlo sullo stack:k:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo