solutionnaire de l`examen intra

publicité
Université du Québec
en Abitibi-Témiscamingue
SOLUTIONNAIRE DE
L’EXAMEN INTRA
COURS:
SIGLE:
MICROPROCESSEURS I
INF-3215
SESSION:
HIVER 99 - CONTRÔLE PÉRIODIQUE
CENTRE:
Rouyn-Noranda
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
Total:
DÉPARTEMENT DES SCIENCES APPLIQUÉES
SOLUTIONNAIRE DE L’EXAMEN INTRA
1) Parmi les unités suivantes, indiquez celles qui feraient partie du noyau du
processeur, et celles qui feraient partie des périphériques: (1 point)
Partie du noyau
Partie périphérique
MAC
þ
r
ALU
þ
r
SHIFTER
þ
r
SPORT0
r
þ
TIMER
r
þ
Mémoire DM
r
þ
Mémoire PM
r
þ
2) Qu’est ce que l’architecture Harvard (cochez la bonne case) (1 point)
C’est celle qui permet un accès, soit à une instruction, soit à une
donnée dans un cycle.
r
C’est celle qui permet un accès simultané à une instruction et à une
donnée dans un même cycle.
þ
C’est celle qui permet un accès simultané à une instruction et à 2
données dans un même cycle.
r
3) À quoi sert le générateur d’adresse DAG2 sur le ADSP21xx (cochez toutes les
possibilités sensées): (1 point)
À générer une donnée en mémoire DM
r
À générer une adresse en mémoire DM
þ
À générer une adresse en mémoire PM
þ
À générer une adresse pour le séquencement des instructions
r
À générer une adresse sur le bus de données
r
Permet l’adressag indirect par pointeur
þ
Page 1
SOLUTIONNAIRE DE L’EXAMEN INTRA
4) Combien de fils d’adresses sont nécessaires pour adresser une zone mémoire
de 48 Kmots. (1 point)
16 (48 K = 2 10 x 26 = K x 64)
fils sont nécessaires
5) Quels bus sont bi-directionnelles. (1 point)
Les bus d’adresses
r
Les bus de données
þ
Les bus d’adresses et les bus de données
r
6) Donnez le nom du précompilateur assembleur du adsp21xx: (1 point)
asm21.exe
r
asm2.exe
r
asmpp.exe
þ
bld21.exe
r
7) Donnez la directive qui crée un tampon circulaire de 14 mots dans la mémoire
PM et dont le nom est “note_freq”: (attention à la ponctuation, c’est une vrai directive,
pas d’à-peu-près)
.var/pm/circ note_freq[14];
8) L’instruction suivante utilise le mode d’adressage (cochez tous les modes
pertinents): (1 point)
ax0=dm(i0,m2);
Mode d’adressage direct
þ
Mode d’adressage indirect
þ
Mode d’adressage absolu
r
Mode d’adressage immédiat
r
9) Donnez le résultat en hexadécimal dans sr0 et sr1 après les instructions
suivantes: (1 point)
Page 2
SOLUTIONNAIRE DE L’EXAMEN INTRA
mr1=0xd716;
mr2=0xc308;
{seuls les 8 bits LSB seront dans mr2}
sr=ashift mr2 by 15 (hi);
sr0 =
0x0000
sr1 =
0x0000
10) Donnez le résultat après les instructions suivantes: (1 point)
ax0=0xd716;
ay0=0xc308;
ar = ax0 and ay0;
ar =
0xc300
11) Donnez le résultat après les instructions suivantes: (1 point)
ax0=0xc308; ay0=0xd308;
ar = ax0 or ay0;
ar =
0xd308
12) Donnez le résultat après les instructions suivantes: (1 point)
ax0=0xe408
ay0=0xd316;
ar = ax0 xor ay0;
ar =
0x371e
13) Quelle est la valeur décimale du nombre mis dans le registre suivant:
ax0=0xd416;
Si l’on considère que ce nombre est en format: (2 points)
Valeur en décimale
Entier pur.
54294
Entier signé (en complément_à_2)
-11242
Page 3
SOLUTIONNAIRE DE L’EXAMEN INTRA
Virgule fixe 1.15
-0,34307861328125
14) Soit la séquence d’instructions suivantes en assembleur du ADSP2181:
ax0=0xd416;
ay0=0xd000;
ar=ax0-ay0;
if eq jump get_freq;
Est-ce que le saut vers “get_freq:” a eu lieu? (1 point)
Le saut vers “get_freq:” a eu lieu
r
Il n’y a pas de saut vers “get_freq:”
þ
15) Voici le prototype pour l’addition en double précicion (sur 32 bits) , compléter
les instructions qui manquent pour réaliser cette addition: (1 point)
.MODULE Double_Precision_Add;
{
Double-Precision Addition
Z = X + Y
Calling Parameters
AX0 = LSW of
AX1 = MSW of
AY0 = LSW of
AY1 = MSW of
X
X
Y
Y
Return Values
SR0 = LSW of Z
SR1 = MSW of Z
Altered Registers
AR,SR
Computation Time
4 cycles
}
.ENTRY dpa;
dpa: AR=AX0+AY0;
SR0=AR,
AR=AX1+AY1+C;
{Add LSWs}
{Add MSWs}
Page 4
SOLUTIONNAIRE DE L’EXAMEN INTRA
SR1=AR;
RTS;
.ENDMOD;
16) Voici le prototype pour la soustraction en double précicion (sur 32 bits) , compléter les instructions qui manquent pour réaliser cette soustraction: (1 point)
.MODULE Double_Precision_Subtract;
{
Double-Precision Subtraction
Z = X - Y
Calling Parameters
AX0 = LSW of
AX1 = MSW of
AY0 = LSW of
AY1 = MSW of
X
X
Y
Y
Return Values
SR0 = LSW of Z
SR1 = MSW of Z
Altered Registers
AR, SR
Computation Time
4 cycles
}
.ENTRY
dps;
dps: AR=AX0-AY0;
SR0=AR,
AR=AX1-AY1+C-1;
SR1=AR;
{Subtract LSWs}
{Subtract MSWs}
RTS;
.ENDMOD;
17) Afin d’utiliser les registres i2 et m2 de façon à accéder à tous les 2 éléments du
tampon circulaire “note_freq”, donnez les codes d’initialisation nécessaires des registres i2, m2 et certains registres associés: (1 point)
i2=^note_freq;
Page 5
SOLUTIONNAIRE DE L’EXAMEN INTRA
l2=%note_freq;
m2=2;
18) On veut tester si les 4 bits les plus à gauche de ax0 contiennent la valeur
hexadécimale 0xC. Si oui, on saute au label “toto”. Donnez les instructions
nécessaires en utilisant uniquement les registres ax0, ay0 et ar de l’ALU pour
effectuer ce test et le saut éventuel. (2 points)
ax0=dm(i2,m2);
ay0=0xf000;
ar=ax0 and ay0;
ax0=ar;
ay0=0xc000;
ar=ax0-ay0;
if eq jump toto;
Page 6
Téléchargement