DLOAD1   MAR = OPC = LV + MBR1U; rd 
DLOAD2   MAR = SP = SP + 1 ; wr 
DLOAD3   MAR = OPC + 1 ; rd 
DLOAD4   MAR = SP = SP + 1; wr 
DLOAD5   TOS = MDR; wr; goto (MBR1) 


E' giusta? o e' giusta quella proposta qui sotto?
Se non siete sicuri, provate a farle girare sull'emulatore.



Nella soluzione proposta dal collega mi č sembrato di trovare un errore nell'istruzione dload2, infatti l'istruzione riporta il seguente
codice "MAR=SP+1;wr". 
Considerando che gli argomenti impliciti di wr sono MAR e MDR, il valore di MDR ancora non si č aggiornato infatti bisognerą aspettare
dload3 affinche il valore di MDR sia quello letto nella posizione LV+MBR1U identificata nella prima istruzione dload1. 
  
ISTRUZIONE IJVM "DLOAD": 

dload1 MAR=OPC = LV+MBR1U ;rd  // identifichiamo la variabile nel local var frame e la leggiamo 
dload2 MAR = SP = SP + 1   // incrementiamo SP e muoviamo il nuovo SP verso MAR 
dload3 wr;                 // scriviamo il valore di MDR all'indirizzo SP 
dload4 MAR = OPC + 1; rd   // leggiamo la parola succesiva 
dload5 MAR = SP = SP + 1  // inc. nuovamente SP e muoviamo il nuovo SP verso MAR 
dload6 TOS  = MDR; wr;   // aggiorniamo il TOS e scriviamo il valore di MDR 
dload7 GOTO (MBR1);      // all'indirizzo SP, infine andiamo all' opcode successivo..... 
  
