Devoir surveillé Aucun instrument de calcul ou appareil électronique

publicité
Licence MMI
Université de Reims
Champagne-Ardenne
U.F.R. de Sciences
Exactes et Naturelles
Licence MMI
Info(rmatique) 11
2004/2005
Devoir surveillé
Barème indicatif (sur 40) :
– Exercice 1 : 10 points
– Exercice 2 : 15 points
Info(rmatique) 11
Exercice 2 (Architecture, langage d’assemblage)
1˚) Rappelez la signification des abbréviations UC et UAL.
2˚) On considère le code assembleur dont l’écriture hexadecimale est :
0002 4104 9001 3105 8111 1000 7000
– Donnez l’écriture de ce code en utilisant les mnémoniques du langage.
– Construisez l’organigramme correspondant à ce code assembleur.
– Ecrivez un algorithme correspondant à ce traitement, en considérant que les trois premières
cases de la mémoire de données correspondent au trois variables a, b et c.
3˚) On considère le code suivant :
– Exercice 3 : 8 points
– Exercice 4 : 4 points
– Présentation des algorithmes
et clarté de la rédaction : 3 points
Aucun instrument de calcul ou appareil électronique n’est autorisé.
Documents autorisés : annexe du cours d’architecture ; votre compte rendu de Travaux
Pratiques1.
Exercice 1 (Binaire et représentation des données)
1˚) Binaire mathématique
– Donnez l’écriture binaire mathématique de l’entier 369.
– Donnez l’écriture en base 10 de (a2f )16 .
2˚) Représentation signée des entiers, sur un octet
– Quelles sont les valeurs représentées par [10110111]c2 et [a6]c16 ?
– Donnez la représentation signée de l’entier -10.
– Effectuez la soustraction binaire (−80) − 54, et vérifiez en base 10 la valeur obtenue.
3˚) Représentation des caractères
– Quelle est la phrase représentée par les octets suivants (donnés en hexadecimal) :
314575726F203C203224
– Donnez la représentation de la phrase suivante : ”Reims (51)”
3 :
JPZ 8
6 :
STORE Mem[0]
0 :
LOAD Mem[0]
4 :
LOAD Mem[0]
7 :
JMP 1
1 :
MUL 2
5 :
ADD Mem[1]
8 :
END
2 :
CMP 15
Après avoir précisé quelles sont les cases de la mémoire de données utilisées par ce code, dressez
son tableau d’exécution (sans donner l’écriture hexadecimale des instructions), en supposant que les
premiers octets de la mémoire correspondent à l’écriture hexadecimale 050bf06d.
4˚) Ecrivez un code assembleur permettant d’échanger les contenus des cases 0 et 1 de la mémoire de
données : vous donnerez son écriture selon les mnémoniques du langage, puis en écriture hexadecimale.
Exercice 3 (Algorithmique)
1˚) Ecrivez un algorithme permettant de stocker dans deux variables a et b des valeurs fournies par
l’utilisateur et de calculer leur produit (b fois la quantité a, b étant supposé positif) EN N’UTILISANT QUE DES ADDITIONS, et de ranger le résultat dans la variable c avant de l’afficher.
2˚) Comment l’adapter pour qu’il permette d’effectuer le produit avec a et b de signes quelconques ?
3˚) Ecrivez un fichier source de programme Java correspondant au traitement précédent (complet).
Exercice 4 (Langage Java, compilation)
On considère la définition de classe suivante (les lignes du fichier sont numérotées) :
c l a s s DS {
public s t a t i c void main ( S t r i n g [ ] a r g s ) {
int x=3;
if ( x = 3 )
x = x+1
y = x / 3;
p r i n t l n ( "x=" + x + " ␣ ; ␣y=" + y ) ;
} // f i n du main
} // f i n de l a c l a s s e
1
manuscrit (non photocopié), portant votre nom et agrafé
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// 10
// 11
– Quel nom donneriez-vous au fichier contenant cette définition ?
Quelle est la commande permettant la compilation et, en cas de succès, quel serait le nom du
fichier produit ? Quelle serait alors la commande pour l’exécution du programme ?
– En fait, la compilation met en évidence 4 erreurs. Trouvez les et corrigez les.
Téléchargement