Vous êtes sur la page 1sur 4

Correction

Systèmes à Microprocesseurs Examen du 18/03/2020

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, traducteurs électroniques 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 questions ont une seule et unique bonne réponse.
Question 1 Où se trouvent les indicateurs d'état NZCV ?

dans le registre Current Program Status dans l'unité de mémoire


Register (CPSR) dans l'Unité Arithmétique et Logique
dans l'unité de contrôle (UAL)
Question 2 Les instructions du processeur ARM vu en cours sont codées sur :

16 bits 128 bits


64 bits
32 bits 8 bits
Question 3 ♣ L'unité arithmétique et logique (UAL) permet d'eectuer des opérations sur des
données:

16 bits 32 bits
128 bits 8 bits
64 bits Aucune de ces réponses n'est correcte.

Question 4 Parmi les modes d'adressage suivants, lequel n'est pas valide en assembleur ARM
?

adressage pré-indexé automatique adressage immédiat


adressage post-indexé automatique adressage indirect par registre
Question 5 ♣ Quelle(s) instruction(s) permet(tent) de faire un décalage logique de 5 positions
à gauche du contenu de R1 ?

MOV R0, R1, LSL#5 MOV R1, LSL#5


ADD R0, #0, R1, LSL#5
MOV R1, R0, LSL#5 Aucune de ces réponses n'est correcte.

Question 6 ♣ Quelle est ou quelles sont les instructions invalides ?

MOV R1, [R0] MOV R1, 3


MOV R1, #0b100 MOVS R1, R0
MOV #3, R1 Aucune de ces réponses n'est correcte.
Correction

Question 7 ♣ Quelle est ou quelles sont les instructions invalides ?

ADD R0, R1, LSL#5, R2 ADD R0, R1, R2, R3


ADD R0, R1, [R2]
ADD R0, R1, R2, ROR#3 Aucune de ces réponses n'est correcte.

Question 8 Dans l'exemple suivant, combien de fois s'exécute la boucle LOOP ?


TAB: .word 8, 16, 32

ADR R0, TAB


LDR R1, [R0, #8]
MOV R2, #0
MOV R3, #0
LOOP: ADD R3, R3, R2
ADD R2, R2, #1
CMP R2, R1
BLT LOOP

BX LR

boucle innie 16 fois


8 fois
Nombre d'itérations indéni 32 fois
Question 9 Quel est le résultat de l'addition 26 + 27 ?

0b110101 0b101011
0b110110 0b111010
Question 10 Convertir chacun des nombres binaires signés suivants (complément à deux) en
nombre décimal signé. 00000101 11111100 11111000

+5 -4 -8 +5 -252 -248
-5 +252 +248 -5 +4 +8
Question 11 Quel est le résultat de la soustraction décimale 4 - 14 (sur 32 bits) ?

-0xA 0xFFFFFFF6
0x10 -0x10
0xFFFFFF10
0xA 0xFFFFFFFB
-0xB 0xB
Question 12 Après la soustraction décimale précédente 4 - 14 (sur 32 bits), 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=1, V=0 N=1, Z=0, C=1, V=0
N=1, Z=0, C=0, V=1 N=0, Z=0, C=0, V=0
N=0, Z=0, C=0, V=1 N=0, Z=0, C=1, V=1
Correction

Question 13 ♣ Quelle est ou quelles sont les instructions invalides ?

ADDS R0, R1, R2 CMPEQ R0, R1


SUB R0, R1, LSL#2, R2
MOV R0, R1, LSL R2
LDRSH R1, [R0]
STREQ R1, [R0] Aucune de ces réponses n'est correcte.

Question 14 Le complément à deux est utilisé pour additionner les nombres binaires signés sur
8 bits 0b11110010 et 0b11110011. Déterminer, en décimal, le signe et la valeur de chaque nombre
et leur somme.

-11 et 16, -27 -113 et 114, 227


-27 et -13, 40 -14 et -13, -27
Question 15 Quelle taille mémoire permet un bus d'adresse 32-bit ?

16 Giga octets 8 Giga octets


2 Giga octets
32 Giga octets 4 Giga octets
Question 16 Quel est le résultat de la soustraction binaire 0 - 0 ?

Résultat = -1, C = 1 Résultat = 0, C = 0


Résultat = 1, C = 1 Résultat = 0, C = 1
Résultat = 1, C = 0 Résultat = -1, C = 0
Question 17 Quels est ou quels sont l(es) indicateur(s) utilisés pour indiquer un dépassement
sur une opération arithmétique non-signé?

C V
N Z
Question 18 ♣ Quel est ou quels sont le(s) résultat(s) d'un décalage arithmétique à droite de
2 bits de la valeur -36 (sur 32 bits) ?

0xFFFFFFF8 9
0x00000009
0x00000008
-9
0xFFFFFFF9 Aucune de ces réponses n'est correcte.
Correction

Question 19 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 LDR R5,
[R4], #-4 ?

R4 = 0x8004 et R5 = 0x01234567 R4 = 0x8004 et R5 = 0xEFCDAB89


R4 = 0x8000 et R5 = 0xEFCDAB89 R4 = 0x8000 et R5 = 0x01234567
R4 = 0x8004 et R5 = 0x01234567 R4 = 0x8004 et R5 = 0x89ABCDEF
R4 = 0x8000 et R5 = 0x01234567 R4 = 0x8000 et R5 = 0x89ABCDEF
Question 20 Sous les mêmes hypothèses que précédemment, si R4 contient 0x8004, que
contiennent les registres R4 et R5 après exécution de l'instruction LDR R5, [R4, #-4]! ?

R4 = 0x8000 et R5 = 0x01234567 R4 = 0x8004 et R5 = 0x01234567


R4 = 0x8004 et R5 = 0x89ABCDEF R4 = 0x8004 et R5 = 0x01234567
R4 = 0x8000 et R5 = 0xEFCDAB89 R4 = 0x8000 et R5 = 0x89ABCDEF
R4 = 0x8000 et R5 = 0x01234567 R4 = 0x8004 et R5 = 0xEFCDAB89

Vous aimerez peut-être aussi