Macchina RAM: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Inserimento automatico del portale matematica |
m Bot: Correzione di uno o più errori comuni |
||
Riga 9:
Ciascuno dei due nastri è rappresentato da infinite celle, numerate a partire dalla prima, ognuna delle quali può contenere un numero intero. Il nastro di ingresso è dotato di una testina di sola lettura mentre quello di uscita dispone di una testina di sola scrittura. Le due testine si muovono sempre da sinistra verso destra e nello stato iniziale sono posizionate sulla prima cella. Inizialmente tutte le celle del nastro sono vuote mentre il nastro di ingresso contiene l'input della macchina; questo è formato da un vettore di n interi x<sub>1</sub>,x<sub>2</sub>,...x<sub>n</sub> disposti ordinatamente nelle prime n celle del nastro.
Il programma è fissato e non può essere modificato durante l'esecuzione. Ciascuna istruzione è etichettata e il registro lc (Location counter) contiene l'etichetta dell'istruzione da eseguire. Le istruzioni molto semplici, si avvicinano molto ad un linguaggio [[Assembler]].
Ogni registro R<sub>k</sub> può contenere un numero arbitrario intero relativo. L'indirizzo del registro R<sub>k</sub> è l'intero k. Il registro R<sub>0</sub> è chiamato accumulatore ed è l'unico sul quale si possono svolgere operazioni aritmetiche.
Riga 20:
<math>P = istr_1;istr_2;...istr_m</math>
ciascuna delle quali è una coppia formata da un codice di operazione e da un indirizzo. Un indirizzo a sua volta può essere un operando o un'etichetta. Le etichette sono associate solo a comandi di salto e servono per indicare istruzioni del programma cui passare eventualmente il controllo. Un operando può assumere tre forme diverse:
#=i indica l'intero i
#i indica il contenuto del registro R<sub>i</sub>
|