Simulatore Modalità
di Indirizzamento
L'applet simula
il comportamento di un calcolatore a livello ISA le cui caratteristiche sono
riportate di seguito:.
- Modello di memoria implementato
Come tutti i calcolatori,
la memoria è suddivisa in celle con indirizzi consecutivi da 0 a 9
e sei registri (R[0] - R[5]) tutti ad applicazione generale (servono cioè
a memorizzare variabili locali e i risultati intermedi dei calcoli).
Quello che è in grado difare
un calcolatore è definito dal suo Instruction-Set. Il formatodelle
istruzioni influenza l'efficienza di un'ISA.Ogni istruzione contienel'opcode
insieme ad altre informazioni come ad esempio dove si trovano glioperandi
e dove vanno i risultati. In questa simulazione si è sceltodi considerare
lunghezze di istruzione variabili, ed in particolare i seguentiformati:

- Modalità di indirizzamento:
Le modalità di indirizzamento
determinano il modo con cui vengono selezionati gli operandi delle istruzioni
(per operando si intende anche la destinazione!). Tali modalità accedono
ai registri o alla memoria in maniera diversa tra loro:
- Immediato: La parte relativa all'indirizzo dell'istruzione
contiene l'operando stesso anzichè contenere informazioni su dovesi
trova l'operando.Viene detto immediato poichè letto automaticamente
dalla memoria nel momento stesso in cui viene letta l'istruzione ed è
pertanto immediatamente disponibile, non richiede quindi riferimenti supplementari
alla memoria; un difetto è rappresentato dal fatto che puòessere
fornita solo una costante e il numero di valori è limitatoalle dimensioni
del campo.
- Diretto: Specifica l'operando in memoria indicandone ilsuo
indirizzo completo, viene usato quindi per accedere a variabili residenti
in memoria il cui indirizzo è conosciuto al momento della compilazione;
questa modalità presenta il seguente difetto: l'istruzione ha accesso
sempre esattamente alla stessa locazione di memoria.
- Dei Registri: L'indirizzamento dei registri è concettualmente
uguale all'indirizzamento diretto, ma specifica un registro invece dellalocazione
di memoria. Poichè i registri sono così importantiquesta modalità
di indirizzamento é quella più comunesu quasi tutti i calcolatori.
- Indiretto dei Registri: In questa modalità l'operando
che viene specificato proviene dalla memoria oppure va alla memoria, ma il
suo indirizzo è contenuto in un registro. Quando si usa un indirizzo
in questo modo lo si chiama puntatore; questo indirizzamento può fare
riferimento alla memoria senza pagare il prezzo di avere un indirizzo dimemoria
pieno nell'istruzione.
- Indice: L'operando viene riferito attraverso il contenuto
di un registro e un offset. Questa modalità è utile per riferire
memoria attraverso un puntatore di memoria in un registro e un offset nell'istruzione
oppure attraverso un offset in un registro e un puntatore nell'istruzione
stessa.
- Based-Indexed: Questa modalità funziona come la precedente solo
che l'offset è contenuto in un registro detto indice, e l'altro registro
è detto base, viene quindi indirizzata la memoria attraverso due registri.
- Dettaglio delle istruzioni:
- INC - INC(op) Incrementa di 1 l'operando specificato. Op può
trovarsi in memoria o in un registro.
- ZER - ZER(op) Azzera l'operando specificato. Op può trovarsi
in memoria o in un registro.
- LOAD - LOAD(dest, src) Questa istruzione serve per caricare in memoria
il contenuto di un registro. "dest" è quindi un operando in memoria,
"src" si trova in un registro.
- STORE - STORE(src, dest) E' l'istruzione inversa della precedente,"src"
è in memoria mentre "dest" indica un registro.
- MOVE - MOVE(dest, src) Serve per copiare in dest (registro) il contenuto
di src che può essere un registro o una variabile immediata.
- ADD - ADD(dest, op1, op2) Esegue la somma di op1 e op2 in dest.
- SUB - SUB(dest, op1, op2) Esegue la differenza tra op1 e op2 e mette
il risultato in dest.
- MUL - MUL(dest, op1, op2) Esegue la moltiplicazione tra op1 e op2 in
dest.
- MOD - MOD(dest, op1, op2) Registra in dest il resto della divisione
tra op1 e op2.
- AND - AND(dest, op1, op2) Mette in dest l'and bit a bit tra op1 e op2.
clicca sull'omino
per avviare la simulazione
Scarica L'Applet
Scarica il Codice
