Vous êtes sur la page 1sur 9
OTT Coo a 439/1/3+ Nom ot Prénoin Etudiant3 numéro d’étudiant + 99900003 ESIR SYS1 CC1 2013-2014 25 avril 2014 Durée : 1h, Notation : sur 20 points 1 Premiére partie : QCM (10 points) Instructions : Coches elairement ln case de la réponse que wons pense dlze juste. ILy a une seule réponse juste par Baréme : 10.5 pour chaque répouse correcte 0.5/m pour chaque réponse fuse (oi: m1 est le nombre de réponses possibles) Question 1 A quoi la second ligne du code suivant estelle équivalente? chart © (= 15 Question 2. Dans un processour utilisant la technologie de pipelining, Vnnité de changement dinstruetioin (Ins- Fotch Unit) et Punité de décodage d'instruction (Instruction Decode Unit) d'un méme coeur peuvent~elles e actives situultanément ? O non Dou Question Comment riserver 32 octets (0x20 en hexadécimal) sur I pile en x86 64 bite? sup rsp.0%20 (Tada rtp, 0320 CO sup xbp,0x20 (1 2a rep, 0x20 Question 4 Quel et Peneadage bite de sur 8 bits sur une architecture x86 Danio (suse 1 s0000011 Question 5 Que représente £0 en O20 On 0 0 ais e Clea 39/2/24 Question 6 On consire le nombre hexadécinil OxAARECODOEEFF. Sur combien octets ex-il stocké? Ow Os Ow Os Question 7 Les dernitres architectures x86 In Dani Dis wit TH oa bits Ose bit Question 8 Un programme exécutable texéeutant aut dessus an OS (Linx, Windows) pour ordinateur personnel sont des architectures 1 sexéeute patos izectement sur te processeur physique 1 ne sexe jamais directement sur le procemenr physique Question 9 Le bytecode jam est directement exéentable par u D tmx DD vrai Question 10. Un code assemblour est directement exceutable par un processeur CI vai OO taux Question 11 Dans un programme utilisant 'ABE Linux 286-01 (System V), les parundizs en entaée dune roeéduce sont prineipalement passé 1 sur ta pte (1 par des registres processenr Question 12 Soil le programme assemblenr suivant MoV Bx, 100 MoV [BX] ,256 ne Bx MOV Ax, [2x] Sion suppose la mémoir initinlne & O26 Oo on Question 1:3 Combien doce ullse I chaine de caractves suivante en C? *\a\n\o" Os Os o7 Oe fu lancement de ee programme, que contient AX a la fin dis programme OCCT Ta) e C/o sass Question 14 L’appel suivant estil possible en assembleur x86 CALL f00(10,20) D1 moa Dou Question 15 La mémoire physique d'un od (cpu) LD wa D tonx Question 16 Dans te languge ©, combien C1 soctets [1 2ontets TO 1octet 1 cata depend Question 17 Ow Ox Ow Question 18 Soit le code assemblenr suivant Mov Ax,4 Mav Bx,5 PUSH AX PUSH BX Mav BX,3 Mav AK, POP BX POP AX our personnel est typiquement inlégrée au processeur principal 8 occupe une valeur de type Ant? Sur combien de bits fone ane le registre BCX: A a suite de ce code AX et BX contiennent 2 et 3 respectivement P Oa [AX ot BX contiennent 4 ot § espectvement 1 BX contiennent 5 et 4 respective nt [1 AX ot BX contiennent 3 et 2 rexpectvement Question 19 Le code suivant compiletil en C2 Hinclude int main( int arge, chare* argv) { int d= "HI" D oni CO non Coo e a 434747608 e Question 20 On considire le nombre hexadécimal 0x10203040 stock en mémoire sur une architecture Big Endian, Quel est la séquence doctets qui encode cw norbee? 1 ox10,0x200220,0%40 TH ext0.x30.0:20,0210 e oo +34/5/59 2 Deuxiéme partie : Questions ouvertes et problémes (10 points) Question 21 Expliques quel ext le rede ple appl (Call Stack) en C. [2 points] Denrow Co e a +30/6/58+ code assembleur suivant, fourni par Youtil objdump au début de la proetdure foo(-.) Question 22 Expliques le void foo(void) { a00ded: 85 push bp 400des: 48 89 @S nov rbp,rsp 400de8: 48 83 ec 10 sub rsp, 0x10 Denno [2 points) Co — | a $34/7/81+ Question 23 Inplémentes en asembleur le programe suivant int x > 5; int y = 105 yt } else { erred > (La syntaxe de la segmentation du core n'est pas importante, Ce sont les instructions assenbleurs qui nous inléressent ‘On supposera aus que x, y, eb 2 sont staliquement allouts, of penvent étre réléreness par des symboles, par exemple bara xv 5 ¥ DW 10 Z DW 1 DUP?) ) [s points] ONE Le LTT aT | | Question 24 On considire le programme C suivant include include void strange_function(char« s) { for(i=0; 1 < strlen(s); is) sli] = 2? ~ efi] + 'a%; » If BaFor } // BndProcedure strange_function int main( int arge, chars argv) { char x{] = "alice"; printé(%s\o", x; strange_function(s) ; prince (hs\a", x); strange_function(x); printf(is\o", x; DM BndMain On observe Vexfeution suivante $ gcc surprise.c $ facut, alice alice Expliquer pow voi le programme produit cette sortie. [ points] +34/8/56+ OAL Dee OTT aT) ao oe +$34/9/55

Vous aimerez peut-être aussi