cerca
Esempi istruzioni Mixal
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.EsempiIstruzioniMixal History

Hide minor edits - Show changes to output

September 19, 2009, at 10:51 AM by MINCULPOP - spostata pagina originariamente chiamata "pagina"
Changed line 1 from:
(:title Programmazione degli Elaboratori:)
to:
(:title Esempi istruzioni Mixal:)
September 19, 2009, at 10:49 AM by MINCULPOP - spostata pagina originariamente chiamata "pagina"
Added lines 1-45:
(:title Programmazione degli Elaboratori:)
[[Torna alla pagina di Programmazione degli Elaboratori -> Uni.ProgrammazioneElaboratori]]
----

%titolo%''':: Esempi istruzioni Mixal ::'''

La prima istruzione è la seguente: '''LD2 -32,2(1:3)'''.\\
Per poter capire il reale funzionamento di questa istruzione dobbiamo tradurla nel linguaggio macchina. Sappiamo che una parola del mixal è composta da 5 byte più un bit di segno e nello specifico:\\

*I primi due byte formano l'ADDRESS, individuato dalla specifica di campo (0:2);\\

*Il terzo byte è l'INDEX, individuato dalla specifica di campo (3:3);\\

*Il quarto byte è il MOD, individuato dalla specifica di campo (4:4);\\

*Il quinto ed ultimo byte è l'OPCODE, individuato dalla specifica (5:5).\\

Partendo da queste 5 componenti una generica istruzione del mixal è composta da:



%center%'''MNEMONIC ADDRESS,INDEX(MOD)'''\\


Bene, ora non ci resta che tradurre l'istruzione data all'inizio nel linguaggio macchina:\\

*La prima cifra è ''-32'', questo è l'indirizzo ed essendo solo un byte possiamo dedurre (dato che l'ADDRESS è composto da 2 byte) che il primo sia 00 (motivo per il quale è stato omesso);\\

*La seconda cifra è ''2'' (quella dopo la virgola per intenderci) è il nostro INDEX;\\

*Il nostro MOD è dato dalla specifica di campo (1:3), come facciamo a tradurlo in linguaggio macchina?Niente di più facile: la specifica di campo, così composta (L:R), si traduce facendo L*8+R. Nel nostro caso dunque il MOD è ottenuto facendo: 1*8+3 = ''11''.\\

*L'OPCODE è preso dalla tabella ed è dato da 8 (cifra fissa per rIi), più l'indice che è 2. Di conseguenza 8+2=''10''.\\


Bene, ecco che abbiamo ottenuto finalmente la nostra parola: '''- 00 32 02 11 10'''. Per poter sapere cosa fa questa istruzione dobbiamo sapere il funzionamento dell'istruzione LD2, essa non fa altro che portare nel registro indice V. Infatti se consultiamo la tabella potremo vedere che: ''LDi: rIi <- V''.\\
Ci chiediamo ora cosa sia questo V. Esso è la sottoparola, indicata dalla specifica di campo, di M. Come otteniamo M?Esso è ottenuto dalla somma dell'ADDRESS + INDEX. Da questa somma si otterrà il byte risultante, il quale costituisce l'indirizzo del nostro M. Facciamo un esempio chiarificatore:\\

Se il contenuto di M è: "- 10 11 00 11 22" (identificato da un indirizzo ottenuto appunto come risultato della somma vista in precedenza), e la nostra specifica di campo è (1:3) allora avremo che la sottoparola V che cerchiamo è costituita dai primi 3 byte di M (escluso il segno), ovvero: "10 11 00". Dato che il Mixal è costituito da 5 byte aggiungiamo gli altri due byte per ottenere: "00 00 10 11 00".\\


Collegando il nostro caso con l'esempio appena fatto, avremo che nel registro indice rI2 saranno caricati questi tre byte.

----
[[Torna alla pagina di Programmazione degli Elaboratori -> Uni.ProgrammazioneElaboratori]]