Vous êtes sur la page 1sur 4

Correction

Systèmes à Microprocesseurs Examen du 25/03/2019

Nom : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Prénom: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Remplir les cases entièrement, ne pas simplement mettre une croix ou un cercle.

Durée : 1 heure. Documents, calculatrices, téléphones et ordinateurs portables interdits. La


compréhension de l'enoncé et des questions fait entièrement partie de l'épreuve.
Barême : 1 point par question.
Les questions faisant apparaître le symbole ♣ peuvent présenter zéro, une ou plusieurs bonnes
réponses. Toutes les autres quesions ont une seule et unique bonne réponse.
Question 1 ♣ Parmi les instructions suivantes, quelle est ou quelles sont celle(s) qui modie(nt)
les indicateurs d'état ?

BLE CMN
ADDEQ ADR
ADCS
MOV LDR
TST Aucune de ces réponses n'est correcte.

Question 2 Quelle est la taille de l'espace adressable du microprocesseur ARM7TDMI ?

1 Mo 32 Ko
216 octets 232 octets
16 Ko 1 Ko
32 Mo 16 Mo
Question 3 Quelle est la taille des instructions du microprocesseur ARM7TDMI ?

128 bits 8 bits


16 bits
64 bits 32 bits
Question 4 L' élément qui réalise les opérations arithmétiques et logiques s'appelle:

Un registre L'Unité de Mémoire


l'Unité de Traitement
l'UAL L'Unité de Contrôle
Question 5 Quelle est la taille des registres du processeur ARM7TDMI ?

32 bits 64 bits
8 bits 16 bits
Question 6 ♣ Parmi les bus suivants, lequel(s) est(sont) bidirectionnel(s) ?

Le bus de données Aucune de ces réponses n'est correcte.

Le bus d'adresses
Correction

Question 7 ♣ MOV est une instruction qui permet:

de copier la valeur d'un registre dans un un registre


autre registre
de mettre une constante dans un registre
de faire un décalage sur la valeur d'un reg-
istre de mettre une variable dans un registre
de mettre une donnée de la mémoire dans Aucune de ces réponses n'est correcte.

Question 8 ♣ LDR est une instruction qui permet:

de mettre une donnée de la mémoire dans de copier la valeur d'un registre dans un
un registre autre registre
de faire un décalage sur la valeur d'un reg-
de mettre une constante dans un registre
istre
de mettre une variable dans un registre Aucune de ces réponses n'est correcte.

Question 9 Quel est le plus grand nombre entier signé avec une représentation sur 8 bits ?

256 128
127 255
Question 10 Quelle est la valeur décimale de 0xC18 ?

1548 6192
3096 110000011000
Question 11 Quel est le résultat de la soustraction sur 32 bits des deux nombres hexadécimaux
0xAC - 0xBD ?

0x11 0xFFFFFFFF
0x169
0xFFFFFFEF 0xFFFFFFEE
Question 12 Après la soustraction sur 32 bits des deux nombres hexadécimaux 0xAC - 0xBD,
quel est l'état des indicateurs N, Z, C et V ?

N=1, Z=0, C=0, V=0 N=1, Z=0, C=1, V=1


N=0, Z=0, C=0, V=1 N=1, Z=0, C=0, V=1
N=1, Z=0, C=1, V=0 N=0, Z=0, C=0, V=0
N=0, Z=0, C=1, V=1 N=0, Z=0, C=1, V=0
Question 13 Après l'opération 0x8F00 0000 - 0xC000 0000 quel est l'état des indicateurs
d'état ?

N=0, Z=0, C=1, V=1 N=1, Z=0, C=0, V=0


N=0, Z=0, C=0, V=1 N=1, Z=0, C=1, V=1
N=0, Z=0, C=1, V=0 N=1, Z=0, C=1, V=0
N=0, Z=0, C=0, V=0 N=1, Z=0, C=0, V=1
Question 14 Quel est le résultat d'un décalage arithmétique à droite de 3 bits de la valeur
0x97 (sur 32 bits) ?

0x12 -14
0xF2
18 -105
Correction

Question 15 Que fait l'instruction BEQ LOOP :

Boucler si Z=0 Saut vers l'étiquette EQ si Z=0


Saut vers l'étiquette EQ Saut vers l'étiquette LOOP si Z=0
Saut vers l'étiquette EQ si Z=1 Saut vers l'étiquette LOOP
Saut vers l'étiquette LOOP si Z=1 Boucler si Z=1
Question 16 Quel est le résultat d'une rotation à droite de 4 bits de la valeur 0xF000000F
(sur 32 bits) ?

0xF000000F 0x000000FF
0x000FF000 0xFF000000
Question 17 ♣ Quel est ou quels sont le(s) résultat(s) d'un décalage arithmétique à droite de
2 bits de la valeur -32 (sur 32 bits) ?

0x3FFFFFF8 -16
0xFFFFFFF8 0xFFFFFFFF
0xFFFFFF -8
-4 Aucune de ces réponses n'est correcte.

Question 18 On considère la zone mémoire suivante :


Addresse Donnee
0x8000 0xEF
0x8001 0xCD
0x8002 0xAB
0x8003 0x89
0x8004 0x67
0x8005 0x45
0x8006 0x23
0x8007 0x01

Si R4 contient 0x8004, dans l'hypothèse d'une organisation "little endian" (octet de poids faible
à l'adresse faible), que contiennent les registres R4 et R5 après exécution de l'instruction LDRSB
R5, [R4, #-3]! ?

R4 = 0x8004 et R5 = 0xFFFFFFCD R4 = 0xCD et R5 = 0x8001


R4 = 0xCD et R5 = 0x8004 R4 = 0xFFFFFFCD et R5 = 0x8004
R4 = 0x8001 et R5 = 0xCD R4 = 0x8001 et R5 = 0xFFFFFFCD
R4 = 0xFFFFFFCD et R5 = 0x8001 R4 = 0x8004 et R5 = 0xCD
Question 19 Sous les mêmes hypothèses que précédemment, si R4 contient 0x8004, que
contient le registre R5 après exécution de l'instruction LDR R5, [R4] ?

R5 = 0x67452301 R5 = 0xFEDCBA98
R5 = 0x76543210 R5 = 0x01234567
R5 = 0x89ABCDEF R5 = 0x67
Question 20 ♣ Parmi les instructions suivantes, lesquelles ne sont pas valides ?

CMP R1, R2, ASR#1 ADD R0, R1, LSL#1


BLEQ SP1 CMP R1, R2, R3
SUB R1, R2, R3, R4 STRHGT R1, [R0]
CMPLE R1, R2 Aucune de ces réponses n'est correcte.
Correction

Vous aimerez peut-être aussi