Exercice 1 - 2 pts 1.a) @ sur 32 bits => 2^32 mots (ou données) donc 2^32 octets (1 mot = 1 octet) soit 4 Go : - 2 Go : OK - 4 Go : OK - 8 Go : NON (pas assez d'@) 2.b) @ sur 64 bits => 2^64 mots soit 2^34 Go assez pour 2, 4 ou 8 Go 2.C) @ sur 64 bits => mémoire virtuelle de taille max 16 Eo Exercice 2 - 4 pts a) intervalle -2^5 à 2^5 -1 ou -32 à 31 : 0,5 pr une de ces 2 réponses b) 0,75 chacun -11 : 110101 (C2) 14 : 001110 (C2) ; 1110 admis c) addition détaillée (avec retenues) interprétation du résultat : on retrouve 3, résultat correct justification (2 possibilités) : 2 dernières retenues identiques (ici 1 et 1) ou addition de 2 nbs de signes opposées Exercice 3 - 5 pts Points clés du programme : * boucle effectuée 8 fois * calculs des @ des données à additionner 0x10(2*i) \ 0x11(2*i) | pds faibles 0x12(2*i) / 0x10(2*i+1) \ 0x11(2*i+1) | pds forts 0x12(2*i+1) / * addition des poids faibles : ADD * addition des poids forts : ADC ou ADD + retenue mémorisée dans 1 registre Le comportement de l'instruction INC par rapport au flag_c n'était pas précisé (compté OK dans les 2 cas). Par contre si utilisation de ADD pr calculer des @ entre l'addition des pds faibles et forts => ADC non correct Attention : ne pas effectuer les 8 additions de poids faibles avant les 8 additions de pts forts : toutes les retenues sont perdues et donc sont introduites par erreurs. Exemple de solution (il en existe plein): R7 : compteur de boucle R6 : pds faibles des @ (identiques pr les 3 vecteurs) des pds faibles des entiers R5 : pds faibles des @ (identiques pr les 3 vecteurs) des pds forts des entiers Toutes les constantes sont en héxa LD R0 8 LD R7 R0 // cpteur de bcle (à faire 8x) LD R0 0 LD R6 R0 // @ des poids faibles (0, 2, 4, 6, ..., d) LD R0 1 LD R5 R0 // @ des poids forts (1, 3, 5, 7, ..., f) bcle: LD R2 R6 LD R0 0 LD R1 R0 LD R0 1 // R0R1R2 <- 0x10(2*i) LD R0 (R0R1R2) // lecture pds faibles v1[i] LD R3 R0 LD R0 1 LD R1 R0 // R0R1R2 <- 0x11(2*i) LD R0 (R0R1R2) // lecture pds faibles v2[i] ADD R0 R3 // addition des pds faibles LD R3 R0 LD R0 2 LD R1 R0 LD R0 1 // R0R1R2 <- 0x12(2*i) LD (R0R1R2) R3 // ecriture pds faibles v3[i] LD R2 R5 LD R0 0 LD R1 R0 LD R0 1 // R0R1R2 <- 0x10(2*i+1) LD R0 (R0R1R2) // lecture pds forts v1[i] LD R3 R0 LD R0 1 LD R1 R0 // R0R1R2 <- 0x11(2*i) LD R0 (R0R1R2) // lecture pds forts v2[i] ADC R0 R3 // addition des pds forts LD R3 R0 LD R0 2 LD R1 R0 LD R0 1 // R0R1R2 <- 0x12(2*i) LD (R0R1R2) R3 // ecriture pds forts v3[i] INC R5 // incrémentation des @ (+2) INC R5 INC R6 INC R6 DJNZ bcle // retour au début de la boucle (8 fois) Exercice 4 : U1 : 1er top U2 : 10ème top M1 : 2ème top M2 : 9ème top Exercice 5 5.a) * offset : 4 bits : 3...0 * n° de bloc : 28 bits : 31...4 * n° ensemble (inclus ds n° de bloc) : 5 bits quelconque : 8...4 par ex * TAG (inclus ds n° bloc) : 23 bits = n°bloc\n°ensemble : 31...9 par ex 5.b) t2 (défaut) - - 1 B2 T 0 - - - - - - - - - - - - - - - - - - t3 (défaut) - - 2 - - 1 B3 T 0 - - - - - - - - - - - - - - - t4 (pas de défaut) - - 0 - - 2 - - 1 - - - - - - - - - - - - - - - t5 (défaut) - - 1 - - 3 - - 2 B4 T 0 - - - - - - - - - - - - t6 (défaut) - - 2 - - 4 - - 3 - - 1 B5 T 0 - - - - - - - - - t7 (pas de défaut) - - 2 - - 4 - - 3 - - 0 - - 1 - - - - - - - - - t8 (défaut) - - 3 - - 5 - - 4 - - 1 - - 2 B6 T 0 - - - - - - t9 (défaut) - - 4 - - 6 - - 5 - - 2 - - 3 - - 1 B7 T 0 - - - t10 (défaut) - - 5 - - 7 - - 6 - - 3 - - 4 - - 2 - - 1 B8 T 0 t11 (défaut) - - 6 B9 - 0 - - 7 - - 4 - - 5 - - 3 - - 2 - - 1 t12 (défaut) - - 7 - - 1 B2 - 0 - - 5 - - 6 - - 4 - - 3 - - 2 t13 (pas de défaut) - - 0 - - 2 - - 1 - - 6 - - 7 - - 5 - - 4 - - 3 t14 (défaut) - - 1 - - 3 - - 2 - - 7 B10 - 0 - - 6 - - 5 - - 4