1. L'istruzione BIPUSH 828 è un'istruzione IJVM valida?
  
    A. Certo.

    B. Solo se 828 è in memoria.
    
C. Solo se 828 è memorizzabile sullo Stack.
    D. No.
    E. Dipende dall'istruzione che la precede.
    
F.  Dipende dall'istruzione che la segue. 
 

2. Nel microinterprete Mic-1, in ogni segmento di codice che implementa una istruzione IJVM troviamo quasi
    sempre una microistruzione che incrementa il PC ed esegue un fetch e che serve ad estrarre l'opcode della
    successiva istruzione IJVM. Perché tale microistruzione non è presente in quelle che implementano IADD?

    A. In realtà c'è! Ci deve essere per forza per avere una microarchitettura efficiente!
    B. Non ci serve perché la lettura dell' OPCODE successivo è stata fatta prima di saltare al microcodice che implementa IADD.
    C. Dipende dal programma del control store, varia caso per caso.
    D. Oggi giorno si fregano di tutto! E per giunta non ti avvisano! Giuro che prima che me ne andassi c'era!
    E.  Non ci serve perché IADD è un'istruzione senza argomenti.
    
F.  In realtà c'è, solo che siccome IADD lavora sullo Stack, che contiene parole di 32 bit, l'estrazione dell'istruzione
            successiva avviene tramite una rd.
    

3. Consideriamo il seguente segmento di codice Assembly IJVM:
           ILOAD k
           DUP
           IADD
           DUP
           IADD
           ISTORE k
    Tale codice può essere la traduzione dell'istruzione JAVA

     A. k = 4*k.
     B. In realtà non può essere la traduzione di alcuna istruzione JAVA, poiché la seconda IADD non trova sufficienti
             argomenti sullo Stack .

     C. In realtà non può essere la traduzione di nessuna istruzione JAVA, poichè bisognerebbe mettere BIPUSH k al posto
             di ILOAD k.

     D. k = k+k.
     E. k/2 == k/2.
     F. k = IADD(IADD k).