ma tu gli operandi li vuoi prendere dallo stack o li vuoi prendere come parametri??
perchè con
codice:
ISTORE a
ISTORE b
li salvi sulla cima dello stack ma poi li passi come parametri
ho guardato un po' il codice che hai postato, ma non l'ho capito tanto, secondo me hai fatto un po' di casino tra dati e indirizzi.. boh.. conta che io ste cose le ho fatte l'anno scorso in info2
cmq se dovessi fare l'istruzione che mi somma due numeri presi dalla cima dello stack e pone il risultato ancora sulla cima dello stack (mangiandosi gli operandi) farei:
codice:
MAR = SP = SP - 1, rd //leggo il secondo operando, il primo era sulla cima
dello stack e quindi in TOS, e aggiorno SP
H = TOS //metto il primo operando in h
MDR = H + MDR, wr //finito il ciclo di lettura ho il secondo operando in MDR,
così lo sommo ad H, metto il tutto in MDR (e in TOS)
e poi scrivo(MAR punta alla cima dello stack).
PC = PC + 1, fetch, goto(MBR)
però mi sa che è sbagliata sulla fase in cui si passa all'struzione successiva (ultima riga)!
ciao!