Esercizio 25
Quali errori ci sono nel seguente codice assembler IJVM?
.method zumpappero(a,i,j,k)
.var
bambi
tippete
fiorellino
.end-var
SOLUZIONE
BIPUSH 734 //I valori di BIPUSH sono compresi tra –128 e +127
ILOAD 9 //Non esiste alcun valore alla nona posizione!! (abbiamo infatti 4 argomenti e 3 variabili)
IADD //Non avendo potuto mettere nulla sulla stack cosa mai potrà accadere?
IADD //Anche se la prima somma fosse andata a buon fine non potremmo
//eseguire la seconda poiché sono finiti i valori sulla stack o meglio, al max ne avremmo uno solo!!
GOTO 5 //Ma il metodo è già finito!!! Non c’è alcuna 5° istruzione alla quale saltare!!
.end-method