Esame di Sistemi di Elaborazione 3/11/2005
- Si scriva un programma in linguaggio assembler che riceva in input 2 numeri N1 e N2.
Ne calcoli la differenza positiva N (se N1>N2 calcolerą N=N1-N2, altrimenti N=N2-N1).
Quindi stampi N volte la coppia di numeri N1 ed N2 (se N=3, stamperą N1-N2-N1-N2-N1-N2).
Si mostri quindi il contenuto dei registri IR, MAR, MDR, PC e A (accumulatore ALU)
alla fine della esecuzione del programma quando siano dati in input
i valori 10 e 11.
Lo studente supponga di avere già in memoria eventuali costanti necessarie al
programma e di avere a disposizione le seguenti istruzioni:
Arithmetic | 1xx | ADD |
2xx | SUB |
Data Movement | 3xx | STORE |
5xx | LOAD |
BR | 6xx | JUMP |
BRZ | 7xx | BRANCH ON 0 |
BRP | 8xx | BRANCH ON + |
Input/Output | 901 | INPUT |
902 | OUTPUT |
Machine Control | 000 | HALT |
-
Si descrivabo in microcodice le istruzioni JUMP, BRANCH ON 0, BRANCH ON +.
Si discutano quindi le problematiche relative alla esecuzione in pipeline delle stesse.
-
Si descrivano alcune metodologie per velocizzare l'accesso in memoria.
- Si descriva il funzionamento della gestione delle interruzioni. Fornire
quando necessario esempi, disegni, etc.
-
Si descrivano differenze e funzionamento di dischi magnetici ed ottici.
-
Si descrivano differenze e funzionamento di Ethernet (CSMA/CD) e Token Ring.