Sei sulla pagina 1di 8

7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR.

…………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

VARIANTE 1

1. Nel rappresentare in notazione floating point in singola precisione (standard IEEE 754) il numero decimale 0.7 si commette un
errore di discretizzazione. Sia A=M*2E il numero, rappresentabile senza errore, che approssima per eccesso il numero dato. Si
forniscano: M in esadecimale (la prima cifra esadecimale dopo il punto di radice rappresenta i primi 4 bit della parte frazionaria),
E in binario secondo la codifica IEEE (eccesso 127).
M = $1.666668
E = %01111110

2. Si completino le mappe di Karnaugh che rappresentano le due funzioni booleane delle tre variabili binarie x, y, z (che
rappresentano ciascuna un numero naturale da un bit, per cui è 1>0):
- F1(x, y, z) tale che F1=1 se e solo se x>y
- F2(x, y, z), definita solo se x, y, z non hanno tutte e tre lo stesso valore, tale che F2=1 se e solo se x<y oppure x<z
x 0 0 1 1 x 0 0 1 1
y 0 1 1 0 y 0 1 1 0
z z
0 0 0 0 1 0 - 1 0 0
1 0 0 0 1 1 1 1 - 0
F1(x, y, z) F2(x, y, z)

3. Si realizzi, tramite ROM, un decoder 3/8 (siano Y0 .. Y7 le funzioni di uscita): si fornisca la sequenza di valori esadecimali
(separati da virgola) contenuti in ciascuna delle parole della ROM a partire da quella di indirizzo 0 (l’ordine dei bit all’interno di
ciascuna parola della ROM sia tale che il bit meno significativo rappresenti l’uscita Y0).
valori = $ 01, 02, 04, 08, 10, 20, 40, 80

4. Il bus di memoria di un processore PD32 ha 32 linee dati (accesso contemporaneo di 4 byte) ed è sincronizzato da un clock a 50
MHz. Il tempo di esecuzione di una istruzione, espresso in cicli di clock, è: 2 + 4 × (numero accessi in memoria, inclusi fetch).
La RAM è di tipo dinamico: il ciclo di refresh viene eseguito mediamente ogni 100 accessi, rendendo la RAM inaccessibile al
PD32 per 4 cicli di clock del bus.
Si indichi il tempo massimo TMAX, espresso in millisecondi, necessario a eseguire 10.000 iterazioni del seguente ciclo:
LOOP: ADDL (R0)+, R1
JMP LOOP
TMAX = 4,032 ms

5. Una CPU è collegata, mediante un bus con 8 linee dati, a una memoria DRAM da 8MB complessivi. La memoria ha più banchi:
ogni banco contiene 8 chip da 256Kx1 bit, organizzati in un ugual numero di righe e di colonne. I banchi vengono selezionati da
un segnale di tipo RAS come in fig. 3.11 a pag. 93 del libro di testo. Gli indirizzi di memoria partono da 0.
Si indichi il numero b di banchi in cui è organizzata la memoria. Si indichino inoltre, in esadecimale, quali sono la riga e la
colonna che vengono attivate in corrispondenza di una scrittura del byte all’indirizzo $5A1234.
b = 32
riga = $109
colonna = $34

6. In un sistema PD32, il contenuto della memoria a partire dall’indirizzo esadecimale $2000 è il seguente.
L[$2000] = $69475F7C
L[$2004] = $533D7375
L[$2008] = $1B5C6800
Si indichi qual è la stringa ASCII c (terminata dal carattere NUL) che si trova a partire dall’indirizzo $2002 dopo l’esecuzione
dell’istruzione MOVW #$6F74, $2006.
c = “Giusto”

7. Con riferimento al segmento di codice di pag 117 del testo, si supponga che ciascuna istruzione del protocollo di input venga
eseguita in 5 cicli di clock (comprensivi della fase di fetch). Con una CPU con clock a 100Mhz, se il dispositivo DI impegna 1 ms
a produrre un dato, l’istruzione WAIT2 : JNR DI, WAIT2 viene eseguita N volte:
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

N = 20000

8. In un sistema PD32, un dispositivo (di uscita) TIMER è dotato di un suo clock interno avente periodo T=1/30 s; dopo aver
ricevuto il segnale di START, il TIMER decrementa di una unità il contenuto del suo data buffer da 16 bit in corrispondenza di
ciascun fronte di salita del clock interno. Quando il buffer si azzera i decrementi terminano e viene generato il segnale
COMPLETE. Completare il seguente segmento di codice in modo che il registro R0 venga incrementato ad ogni secondo.
LOOP: OUTW #30, TIMER ; inizializza data buffer
START TIMER ; avvia il dispositivo
WAIT: JNR TIMER, WAIT ; attende complete
ADDL #1, R0 ; incrementa registro
JMP LOOP ; cicla

9. In un sistema PD32 inizialmente sia R0=$88, R1=$1, R2=$6. Si indichi, in esadecimale, il contenuto del registro R0 quando il
processore esegue l’istruzione NOP, dopo aver completato il seguente ciclo:
RIP1: SUBW #1, R2
JZ EXIT1
XORL R1, R0
ASLL 1, R1
JMP RIP1
EXIT1: NOP
R0 = $ 97

10. Il PD32 esegua le seguenti istruzioni caricate in RAM a partire dall’indirizzo $1000 (si assuma che l'assemblatore ponga sempre
il valore 0 nei campi non significativi della codifica delle istruzioni):
VAL1 EQU $FFFFFFFC
MOVW VAL1(PC), R0
ADCB #VAL1, R0
Si indichi, in esadecimale, il contenuto di R0 al termine dell’esecuzione dell’ultima istruzione.
R0=$ 1afc

11. Con riferimento alla realizzazione di una matrice M a 2 dimensioni con il supporto di un vettore ausiliario X di offset, si voglia
predisporre una matrice di 75 elementi di tipo floating point in doppia precisione. Sapendo che il numero di righe previsto è 5,
scrivere le direttive che consentono di allocare lo spazio per la matrice e di allocare e inizializzare il vettore ausiliario.

M: .DSB 75*8

X: .DCW 0, 15*8, 30*8, 45*8, 60*8

12. Il registro R2 contenga un puntatore ad un elemento da inserire in una lista concatenata. Si completino le 2 istruzioni PD32 con
cui si ottiene l’inserimento dell’elemento nella posizione successiva a quella dell’elemento puntato dal registro R1.

MOVL (R1), (R2)


MOVL R2, (R1)
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

VARIANTE 2

1. Nel rappresentare in notazione floating point in singola precisione (standard IEEE 754) il numero decimale 0.8 si commette un
errore di discretizzazione. Sia B=M*2E il numero, rappresentabile senza errore, che approssima per difetto il numero dato. Si
forniscano, in esadecimale, M (la prima cifra esadecimale dopo il punto di radice rappresenta i primi 4 bit della parte frazionaria)
ed E secondo la codifica IEEE (eccesso 127)
M = $1.999998
E = $7E

2. Si completino le mappe di Karnaugh che rappresentano le due funzioni booleane delle tre variabili binarie x, y, z (che
rappresentano ciascuna un numero naturale da un bit, per cui è 1>0):
- F1(x, y, z) tale che F1=1 se e solo se x≤z
- F2(x, y, z), definita solo se x, y, z non hanno tutte e tre lo stesso valore, tale che F2=1 se e solo se x≤y e y≤z
x 0 0 1 1 x 0 0 1 1
y 0 1 1 0 y 0 1 1 0
z z
0 1 1 0 0 0 - 0 0 0
1 1 1 1 1 1 1 1 - 0
F1(x, y, z) F2(x, y, z)

3. Si realizzi, tramite ROM, un encoder 4/2 (siano Y0 , Y1 le funzioni di uscita): si fornisca la sequenza di valori esadecimali
(separati da virgola) contenuti in ciascuna delle parole della ROM a partire da quella di indirizzo 0 (l’ordine dei bit all’interno di
ciascuna parola della ROM sia tale che il bit meno significativo rappresenti l’uscita Y0); si indichino con un trattino (-) le
condizioni di indifferenza.
valori = $ -, 0, 1, -, 2, -, -, -, 3, -, -, -, -, -, -, -

4. Il bus di memoria di un processore PD32 ha 32 linee dati (accesso contemporaneo di 4 byte) ed è sincronizzato da un clock a 80
MHz. Il tempo di esecuzione di una istruzione, espresso in cicli di clock, è: 2 + 4 × (numero accessi in memoria, inclusi fetch).
La RAM è di tipo dinamico: il ciclo di refresh viene eseguito mediamente ogni 80 accessi, rendendo la RAM inaccessibile al
PD32 per 3 cicli di clock del bus.
Si indichi il tempo massimo TMAX, espresso in millisecondi, necessario a eseguire 15.000 iterazioni del seguente ciclo:
LOOP: SUBL (R1)+, R0
JMP LOOP
TMAX = 3,778 ms

5. Una CPU è collegata, mediante un bus con 8 linee dati, a una memoria DRAM da 4MB complessivi. La memoria ha più banchi:
ogni banco contiene 2 chip da 256Kx4 bit, organizzati in un ugual numero di righe e di colonne. I banchi vengono selezionati da
un segnale di tipo RAS come in fig. 3.11 a pag. 93 del libro di testo. Gli indirizzi di memoria partono da 0.
Si indichi il numero b di banchi in cui è organizzata la memoria. Si indichino inoltre, in esadecimale, quali sono la riga e la
colonna che vengono attivate in corrispondenza di una scrittura del byte all’indirizzo $1B6789.
b = 16
riga = $1B3
colonna = $189

6. In un sistema PD32, il contenuto della memoria a partire dall’indirizzo esadecimale $3000 è il seguente.
L[$3000] = $73456B4A
L[$3004] = $6F747461
L[$3008] = $B315A072
Ricordando che il PD32 segue la convenzione little endian, si indichi qual è la stringa ASCII c (terminata dal carattere NUL) che
si trova a partire dall’indirizzo $3002 dopo l’esecuzione dell’istruzione MOVW #$6800, $3008.
c = “Esatto”

7. Con riferimento al segmento di codice di pag 117 del testo, si supponga che ciascuna istruzione del protocollo di input venga
eseguita in 4 cicli di clock (comprensivi della fase di fetch). Con una CPU con clock a 200Mhz, se il dispositivo DI impegna 1 ms
a produrre un dato, l’istruzione WAIT2 : JNR DI, WAIT2 viene eseguita N volte:
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

N = 50000

8. In un sistema PD32, un dispositivo (di uscita) TIM è dotato di un suo clock interno avente periodo T=1/20 s; dopo aver ricevuto il
segnale di START, il dispositivo TIM decrementa di una unità il contenuto del suo data buffer da 8 bit in corrispondenza di
ciascun fronte di salita del clock interno. Quando il buffer si azzera i decrementi terminano e viene generato il segnale
COMPLETE. Completare il seguente segmento di codice in modo che il registro R0 venga incrementato ad ogni secondo.
LOOP: OUTB #20, TIM ; inizializza data buffer
START TIM ; avvia il dispositivo
WAIT: JNR TIM, WAIT ; attende complete
ADDL #1, R0 ; incrementa registro
JMP LOOP ; cicla

9. In un sistema PD32 inizialmente sia R0=$C8, R1=$1, R2=$8. Si indichi, in esadecimale, il contenuto del registro R0 quando il
processore esegue l’istruzione NOP, dopo aver completato il seguente ciclo:
RIP1: SUBW #1, R2
JZ EXIT1
XORL R1, R0
ASLL 1, R1
JMP RIP1
EXIT1: NOP
R0 = $ b7

10. Il PD32 esegua le seguenti istruzioni caricate in RAM a partire dall’indirizzo $1000 (si assuma che l'assemblatore ponga sempre
il valore 0 nei campi non significativi della codifica delle istruzioni):
VAL1 EQU $FFFFFFFC
MOVW VAL1(PC), R1
SBBB #VAL1, R1
Si indichi, in esadecimale, il contenuto di R1 al termine dell’esecuzione dell’ultima istruzione.
R1=$ 1a04

11. Con riferimento alla realizzazione di una matrice M a 2 dimensioni con il supporto di un vettore ausiliario X di offset, si voglia
predisporre una matrice di 60 elementi di tipo floating point in precisione singola. Sapendo che il numero di righe previsto è 5,
scrivere le direttive che consentono di allocare lo spazio per la matrice e di allocare e inizializzare il vettore ausiliario.

M: .DSB 60*4

X: .DCW 0, 12*4, 24*4, 36*4, 48*4

12. Data una lista concatenata, si completino le 2 istruzioni PD32 con cui si ottiene l’estrazione dell’elemento (che si suppone
esistente) successivo all’elemento puntato dal registro R1 e la restituzione in R2 del puntatore all’elemento estratto.

MOVL (R1), R2
MOVL (R2), (R1)
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

VARIANTE 3

1. Nel rappresentare in notazione floating point in singola precisione (standard IEEE 754) il numero decimale 1.6 si commette un
errore di discretizzazione. Sia C=M*2E il numero, rappresentabili senza errore, che approssima per eccesso il numero dato. Si
forniscano: M in esadecimale (la prima cifra esadecimale dopo il punto di radice rappresenta i primi 4 bit della parte frazionaria),
E in binario secondo la codifica IEEE (eccesso 127)
M = $1.99999A
E = %01111111

2. Si completino le mappe di Karnaugh che rappresentano le due funzioni booleane delle tre variabili binarie x, y, z (che
rappresentano ciascuna un numero naturale da un bit, per cui è 1>0):
- F1(x, y, z) tale che F1=1 se e solo se y>z
- F2(x, y, z), definita solo se x, y, z non hanno tutte e tre lo stesso valore, tale che F2=1 se e solo se x>y e x≥z
x 0 0 1 1 x 0 0 1 1
y 0 1 1 0 y 0 1 1 0
z z
0 0 1 1 0 0 - 0 0 1
1 0 0 0 0 1 0 0 - 1
F1(x, y, z) F2(x, y, z)

3. Si realizzi, tramite ROM, un multiplexer 2/1, avente due ingressi dei dati (x1 e x0) e un ingresso di controllo (x2) (sia x2 il più
significativo dei 3 bit di ingresso): si fornisca la sequenza di valori binari (separati da virgola) contenuti in ciascuna delle parole
della ROM a partire da quella di indirizzo 0.
valori = %0, 1, 0, 1, 0, 0, 1, 1

4. Il bus di memoria di un processore PD32 ha 32 linee dati (accesso contemporaneo di 4 byte) ed è sincronizzato da un clock a 100
MHz. Il tempo di esecuzione di una istruzione, espresso in cicli di clock, è: 3 + 5 × (numero accessi in memoria, inclusi fetch).
La RAM è di tipo dinamico: il ciclo di refresh viene eseguito mediamente ogni 80 accessi, rendendo la RAM inaccessibile al
PD32 per 4 cicli di clock del bus.
Si indichi il tempo massimo TMAX, espresso in millisecondi, necessario a eseguire 15.000 iterazioni del seguente ciclo:
LOOP: ADDL -(R1), R2
JMP LOOP
TMAX = 3,930 ms

5. Una CPU è collegata, mediante un bus con 8 linee dati, a una memoria DRAM da 8MB complessivi. La memoria ha più banchi:
ogni banco contiene 4 chip da 1Mx2 bit, organizzati in un ugual numero di righe e di colonne. I banchi vengono selezionati da un
segnale di tipo RAS come in fig. 3.11 a pag. 93 del libro di testo. Gli indirizzi di memoria partono da 0.
Si indichi il numero b di banchi in cui è organizzata la memoria. Si indichino inoltre, in esadecimale, quali sono la riga e la
colonna che vengono attivate in corrispondenza di una scrittura del byte all’indirizzo $3C7654.
b=8
riga = $31D
colonna = $254

6. In un sistema PD32, il contenuto della memoria a partire dall’indirizzo esadecimale $2500 è il seguente.
L[$2500] = $4F6B5F4A
L[$2504] = $743D6363
L[$2508] = $155C0069
Ricordando che il PD32 segue la convenzione little endian, si indichi qual è la stringa ASCII c (terminata dal carattere NUL) che
si trova a partire dall’indirizzo $2503 dopo l’esecuzione dell’istruzione MOVW #$6568, $2506.
c = “Occhei”

7. Con riferimento al segmento di codice di pag 117 del testo, si supponga che ciascuna istruzione del protocollo di input venga
eseguita in 4 cicli di clock (comprensivi della fase di fetch). Con una CPU con clock a 100Mhz, se il dispositivo DI impegna 5 ms
a produrre un dato, l’istruzione WAIT2 : JNR DI, WAIT2 viene eseguita N volte:
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

N = 125000

8. In un sistema PD32, un dispositivo (di uscita) ORO è dotato di un suo clock interno avente periodo T=1/40 s; dopo aver ricevuto
il segnale di START, il dispositivo ORO decrementa di una unità il contenuto del suo data buffer da 32 bit in corrispondenza di
ciascun fronte di salita del clock interno. Quando il buffer si azzera i decrementi terminano e viene generato il segnale
COMPLETE. Completare il seguente segmento di codice in modo che il registro R0 venga incrementato ad ogni secondo.
LOOP: OUTL #40, ORO ; inizializza data buffer
START ORO ; avvia il dispositivo
WAIT: JNR ORO, WAIT ; attende complete
ADDL #1, R0 ; incrementa registro
JMP LOOP ; cicla

9. In un sistema PD32 inizialmente sia R0=$44, R1=$1, R2=$7. Si indichi, in esadecimale, il contenuto del registro R0 quando il
processore esegue l’istruzione NOP, dopo aver completato il seguente ciclo:
RIP1: SUBW #1, R2
JZ EXIT1
XORL R1, R0
ASLL 1, R1
JMP RIP1
EXIT1: NOP
R0 = $ 7b

10. Il PD32 esegua le seguenti istruzioni caricate in RAM a partire dall’indirizzo $1000 (si assuma che l'assemblatore ponga sempre
il valore 0 nei campi non significativi della codifica delle istruzioni):
VAL1 EQU $4
MOVW VAL1(PC), R2
ADCW #VAL1, R2
Si indichi, in esadecimale, il contenuto di R2 al termine dell’esecuzione dell’ultima istruzione.
R2=$ 1206

11. Con riferimento alla realizzazione di una matrice M a 2 dimensioni con il supporto di un vettore ausiliario X di offset, si voglia
predisporre una matrice di 60 elementi di tipo floating point in doppia precisione. Sapendo che il numero di righe previsto è 5,
scrivere le direttive che consentono di allocare lo spazio per la matrice e di allocare e inizializzare il vettore ausiliario.

M: .DSB 60*8

X: .DCW 0, 12*8, 24*8, 36*8, 48*8

12. Il registro R2 contenga un puntatore ad un elemento da inserire in una lista concatenata. Si completino le 3 istruzioni PD32 con
cui si ottiene la sostituzione dell’elemento (che si suppone esistente) successivo all’elemento puntato dal registro R1, con
l’elemento puntato da R2

MOVL (R1), R3
MOVL (R3), (R2)
MOVL R2, (R1)
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

VARIANTE 4

1. Nel rappresentare in notazione floating point in singola precisione (standard IEEE 754) il numero decimale 1.4 si commette un
errore di discretizzazione. Sia D=M*2E il numero, rappresentabili senza errore, che approssima per difetto il numero dato. Si
forniscano, in esadecimale, M (la prima cifra esadecimale dopo il punto di radice rappresenta i primi 4 bit della parte frazionaria)
ed E secondo la codifica IEEE (eccesso 127)
M = $1.666666
E = $7F

2. Si completino le mappe di Karnaugh che rappresentano le due funzioni booleane delle tre variabili binarie x, y, z (che
rappresentano ciascuna un numero naturale da un bit, per cui è 1>0):
- F1(x, y, z) tale che F1=1 se e solo se y≥z
- F2(x, y, z), definita solo se x, y, z non hanno tutte e tre lo stesso valore, tale che F2=1 se e solo se x>y oppure x>z
x 0 0 1 1 x 0 0 1 1
y 0 1 1 0 y 0 1 1 0
z z
0 1 1 1 1 0 - 0 1 1
1 0 1 1 0 1 0 0 - 1
F1(x, y, z) F2(x, y, z)

3. Si realizzi, tramite ROM, un comparatore 2/5 (gli ingressi X0 e X1 rappresentino due numeri naturali da un bit e le uscite
rappresentino le seguenti condizioni: Y0(X0<X1); Y1(X0>X1); Y2 (X0≤X1); Y3(X0≥X1); Y4(X0=X1): si fornisca la sequenza di
valori esadecimali (separati da virgola) contenuti in ciascuna delle parole della ROM a partire da quella di indirizzo 0 (l’ordine
dei bit all’interno di ciascuna parola della ROM sia tale che il bit meno significativo rappresenti l’uscita Y0).
valori = $1C, $0A, $05, $1C

4. Il bus di memoria di un processore PD32 ha 32 linee dati (accesso contemporaneo di 4 byte) ed è sincronizzato da un clock a 64
MHz. Il tempo di esecuzione di una istruzione, espresso in cicli di clock, è: 3 + 4 × (numero accessi in memoria, inclusi fetch).
La RAM è di tipo dinamico: il ciclo di refresh viene eseguito mediamente ogni 100 accessi, rendendo la RAM inaccessibile al
PD32 per 4 cicli di clock del bus.
Si indichi il tempo massimo TMAX, espresso in millisecondi, necessario a eseguire 12.000 iterazioni del seguente ciclo:
LOOP: SUBL -(R0), R1
JMP LOOP
TMAX = 4,155 ms

5. Una CPU è collegata, mediante un bus con 8 linee dati, a una memoria DRAM da 4MB complessivi. La memoria ha più banchi:
ogni banco contiene 2 chip da 1Mx4 bit, organizzati in un ugual numero di righe e di colonne. I banchi vengono selezionati da un
segnale di tipo RAS come in fig. 3.11 a pag. 93 del libro di testo. Gli indirizzi di memoria partono da 0.
Si indichi il numero b di banchi in cui è organizzata la memoria. Si indichino inoltre, in esadecimale, quali sono la riga e la
colonna che vengono attivate in corrispondenza di una scrittura del byte all’indirizzo $4D8765.
b=4
riga = $361
colonna = $365

6. In un sistema PD32, il contenuto della memoria a partire dall’indirizzo esadecimale $3500 è il seguente.
L[$3500] = $69474F6B
L[$3504] = $61745E3A
L[$3508] = $B31B006F
Ricordando che il PD32 segue la convenzione little endian, si indichi qual è la stringa ASCII c (terminata dal carattere NUL) che
si trova a partire dall’indirizzo $3504 dopo l’esecuzione dell’istruzione MOVL #$76617242, $3504.
c = “Bravo”

7. Con riferimento al segmento di codice di pag 117 del testo, si supponga che ciascuna istruzione del protocollo di input venga
eseguita in 5 cicli di clock (comprensivi della fase di fetch). Con una CPU con clock a 200Mhz, se il dispositivo DI impegna 5 ms
a produrre un dato, l’istruzione WAIT2 : JNR DI, WAIT2 viene eseguita N volte:

N = 200000
7cr □ COGNOME …………………….……………………. NOME …………………….…………………….MATR. …………………
ARCHITETTURA DEGLI ELABORATORI - Prima prova intermedia - 17 aprile 2010

8. In un sistema PD32, un dispositivo (di uscita) TEM è dotato di un suo clock interno avente periodo T=1/25 s; dopo aver ricevuto
il segnale di START, il dispositivo TEM decrementa di una unità il contenuto del suo data buffer da 16 bit in corrispondenza di
ciascun fronte di salita del clock interno. Quando il buffer si azzera i decrementi terminano e viene generato il segnale
COMPLETE. Completare il seguente segmento di codice in modo che il registro R0 venga incrementato ad ogni secondo.
LOOP: OUTW #25, TEM ; inizializza data buffer
START TEM ; avvia il dispositivo
WAIT: JNR TEM, WAIT ; attende complete
ADDL #1, R0 ; incrementa registro
JMP LOOP ; cicla

9. In un sistema PD32 inizialmente sia R0=$D4, R1=$1, R2=$5. Si indichi, in esadecimale, il contenuto del registro R0 quando il
processore esegue l’istruzione NOP, dopo aver completato il seguente ciclo:
RIP1: SUBW #1, R2
JZ EXIT1
XORL R1, R0
ASLL 1, R1
JMP RIP1
EXIT1: NOP
R0 = $ db

10. Il PD32 esegua le seguenti istruzioni caricate in RAM a partire dall’indirizzo $1000 (si assuma che l'assemblatore ponga sempre
il valore 0 nei campi non significativi della codifica delle istruzioni):
VAL1 EQU $4
MOVW VAL1(PC), R3
SBBW #VAL1, R3
Si indichi, in esadecimale, il contenuto di R3 al termine dell’esecuzione dell’ultima istruzione.
R3=$ 11fe

11. Con riferimento alla realizzazione di una matrice M a 2 dimensioni con il supporto di un vettore ausiliario X di offset, si voglia
predisporre una matrice di 100 elementi di tipo floating point in precisione singola. Sapendo che il numero di righe previsto è 5,
scrivere le direttive che consentono di allocare lo spazio per la matrice e di allocare e inizializzare il vettore ausiliario.

M: .DSB 100*4

X: .DCW 0, 20*4, 40*4, 60*4, 80*4

12. Data una lista concatenata, si completino le 3 istruzioni PD32 con cui si ottiene l’estrazione di due elementi (che si suppongono
esistenti) successivi all’elemento puntato dal registro R3 e la restituzione in R1 ed R2 dei puntatori ai due elementi estratti.

MOVL (R3), R1
MOVL (R1), R2
MOVL (R2), (R3)