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 ADDEQ ADCS MOV TST
CMN ADR LDR
Aucune de ces réponses n'est correcte.
Question 2 Quelle est la taille de l'espace adressable du microprocesseur ARM7TDMI ? 1 Mo
216 octets 16 Ko 32 Mo
32 Ko 232octets 1 Ko 16 Mo
Question 3 Quelle est la taille des instructions du microprocesseur ARM7TDMI ? 128 bits
16 bits 64 bits
8 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 Traitement l'UAL
L'Unité de Mémoire L'Unité de Contrôle Question 5 Quelle est la taille des registres du processeur ARM7TDMI ?
32 bits 8 bits
64 bits 16 bits
Question 6♣ Parmi les bus suivants, lequel(s) est(sont) bidirectionnel(s) ? Le bus de données
Le bus d'adresses
Aucune de ces réponses n'est correcte.
Correction
Question 7♣ MOV est une instruction qui permet:
de copier la valeur d'un registre dans un autre registre
de faire un décalage sur la valeur d'un reg- istre
de mettre une donnée de la mémoire dans
un registre
de mettre une constante dans un registre de mettre une variable dans un registre 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 un registre
de mettre une constante dans un registre de mettre une variable dans un registre
de copier la valeur d'un registre dans un autre registre
de faire un décalage sur la valeur d'un reg- istre
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
127
128 255 Question 10 Quelle est la valeur décimale de 0xC18 ?
1548 3096
6192
110000011000
Question 11 Quel est le résultat de la soustraction sur 32 bits des deux nombres hexadécimaux 0xAC - 0xBD ?
0x11 0x169
0xFFFFFFEF
0xFFFFFFFF 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=0, Z=0, C=0, V=1 N=1, Z=0, C=1, V=0 N=0, Z=0, C=1, V=1
N=1, Z=0, C=1, V=1 N=1, Z=0, C=0, V=1 N=0, Z=0, C=0, V=0 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=0, Z=0, C=0, V=1 N=0, Z=0, C=1, V=0 N=0, Z=0, C=0, V=0
N=1, Z=0, C=0, V=0 N=1, Z=0, C=1, V=1 N=1, Z=0, C=1, 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 0xF2 18
-14 -105
Correction
Question 15 Que fait l'instruction BEQ LOOP : Boucler si Z=0
Saut vers l'étiquette EQ Saut vers l'étiquette EQ si Z=1 Saut vers l'étiquette LOOP si Z=1
Saut vers l'étiquette EQ si Z=0 Saut vers l'étiquette LOOP si Z=0 Saut vers l'étiquette LOOP 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 0x000FF000
0x000000FF 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 0xFFFFFFF8 0xFFFFFF -4
-16
0xFFFFFFFF -8
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 = 0x8004
R4 = 0x8001 et R5 = 0xCD
R4 = 0xFFFFFFCD et R5 = 0x8001
R4 = 0xCD et R5 = 0x8001
R4 = 0xFFFFFFCD et R5 = 0x8004 R4 = 0x8001 et R5 = 0xFFFFFFCD 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 = 0x76543210 R5 = 0x89ABCDEF
R5 = 0xFEDCBA98 R5 = 0x01234567 R5 = 0x67
Question 20♣ Parmi les instructions suivantes, lesquelles ne sont pas valides ? CMP R1, R2, ASR#1
BLEQ SP1
SUB R1, R2, R3, R4 CMPLE R1, R2
ADD R0, R1, LSL#1 CMP R1, R2, R3 STRHGT R1, [R0]
Aucune de ces réponses n'est correcte.
Correction