4
Numéro 18 - Assembleur
a) À chaque itération, la portion suivante du code est exécutée :
mov edi, DWORD PTR [ecx+eax] ; Adresse de b dans EBX (&a-&b+&a)
add eax, 4 ; Addresse de a + 4
add edi, esi ; c + b
dec edx
mov DWORD PTR [eax-4], edi
jne SHORT $L530 ; Branchement
Il y a donc 6 instructions exécutées à chaque itération.
Pour l’exécution de la fonction totale, nous avons
- initialisation Æ 7 instructions
- Boucle Æ 100 x 6 instructions = 600 instructions
- Terminaison Æ 3 instruction (2 pop et ret )
Donc, au total, nous avons 610 instructions pour l’exécution de la fonction.
b) Nous devons estimer le temps de chacune des 6 instructions de la boucle. Nous obtenons
2 MOV Æ 2 cycles
2 ADD Æ 2 cycles
1 DEC Æ 1 cycle
1 JNE Æ 3 cycles
TOTAL 8 cycles
c) Nous devons répéter l’estimation :
8 MOV Æ 8 cycles
2 ADD Æ 2 cycles
1 CMP Æ 1 cycle
1 JGE Æ 1 cycles (pas de saut)
1 JMP Æ 3 cycles
TOTAL 15 cycles
Numéro 19 – Communication
Dans une transmission synchrone, les informations (ex. : les caractères) sont émis de manière
régulière. Les délais entre chaque transmission sont directement reliés au signal d’horloge utilisé
par le lien de communication.
Dans une transmission asynchrone, l’intervalle entre les transmissions est variable. Dans ce cas,
il faut donc utiliser des lignes de contrôle ou des bits de transmission additionnels (ex. : start bit,
stop bit) pour déterminer le début et la fin des transmissions.
Numéro 20 – Communication
a) Faux – Cet intervalle est variable, c’est ce qui caractérise ce type de transmission.
b) Vrai – C’est vrai pour les bits d’un même caractère.