Torna alla pagina di Programmazione degli Elaboratori
:: Programma Mixal Commentato ::
Il codice é:
ORIG 1000
CELLA CON 10
ENTA CELLA
SRA 1
STA CELLA(0:2)
HLT
END CELLA+1
Il significato di questo programma è:
- il programma inizia dalla cella 1000;
- scrive nella posizione corrente il valore 10 e viene etichettata (tale locazione) con il nome CELLA. Contenuto attuale di CELLA: “+00 00 00 00 10”;
- ENTA CELLA: trasferisci l'indirizzo di cella nel registro rA (rA ← M). C'è da tradurre in linguaggio macchina ENTA CELLA per poter costruire l'M da portare in rA. Il codice operativo di ENTA è 48 (lo scriveremo nella specifica di campo (5:5), il mod di ENTA è 2, il quale andrà scritto nella specifica di campo (4:4) (tali valori, il mod e la specifica di campo sono presi dalla tabella del cap.2), l'indirizzo dell'operando CELLA è 1000, che scritto nella potenza di 64 è dato da 15*64 + 40 (il quale andrà scritto nella specifica di campo (0:2). Il risultato è che la traduzione di ENTA CELLA è data da: “+15 40 00 02 48”. Perfetto, ora possiamo costruire l'M (ottenuto come la somma dell'indirizzo + registro indice): ADDRESS: “+15 40” INDEX: “00”, risultato è che M=”+15 40”;
- come effetto dell'istruzione ENTA CELLA in rA avremo “+00 00 00 15 40”;
- l'istruzione SRA 1 avrà come effetto (sul registro rA) un slittamento a destra di un byte. Dunque il nuovo contenuto di rA sarà: “+00 00 00 00 15”;
- L'istruzione STA CELLA(0:2) ci dice di scrivere nella locazione cella (e più precisamente nel campo (0:2)) il contenuto del registro rA (data al specifica di campo prenderemo solo i due byte di rA, quindi gli ultimi due);
- Come effetto di tutto ciò avremo che in CELLA ora ci sarà scritto: “+00 15 00 00 10”.
Torna alla pagina di Programmazione degli Elaboratori