Salve ragazzi ho fatto un progetto in IJVM da testare tramite il simulatore mic1.
il progetto prende 2 numeri e fa la divisione in colonna come alle elementari.
Tutto ok alla fine ho la mia variabile "quoz" aggiornata al vero valore finale (nel mio caso è 5 visto che faccio 20/4).
Passo al simulatore e mi compare dopo aver dato run:
J
End of run.
Mi esce j invece di 5!!!! come risolvo? Cioè dovrei stampare quello che c'è dentro la variabile quoz ed ho fatto così:
vi posto solo la parte finale:
fine:
iload signdo
iload signre
isub //applico la legge dei segni, ovvero:
ifeq stampa //se abbiamo 1-1 oppure 0-0 ,quindi con risultato zero, vado a stampa
//altrimenti
LDC_W t //costante 31bit COMPLEMENTO A 2 (1111...1)
iload quoz
isub
istore quoz
iload quoz
bipush 0x01
iadd
istore quoz //ricordo e quindi riporto il segno negativo in complemento a 2
goto stampa
stampa:
iload quoz //carico il quoziente sul TOS
dup //duplico il risultato per farlo rimanere nel TOS
out
halt
.end-main