Programmation bas niveau
Contrˆole continu TP
L2 informatique
1 Consignes
–`
A r´ealiser en monome ou en binome.
–`
A rendre par e-mail au plus tard le dimanche 16 novembre 2014 `a minuit :
–Sujet de l’e-mail : [Prog. bas niveau] Devoir TP
–Corps de l’e-mail : Pr´enom-NOM du ou des ´etudiants concern´es
–Pi`eces jointes : le fichier jasmin.
2 Sujet
Le chiffrement de C´esar est une technique de cryptographie qui permet de coder des messages
de la fa¸con suivante. ´
Etant donn´e un entier n, on d´ecale chaque lettre du message de npositions
en avant dans l’alphabet. Par exemple, pour n= 3, le message programmation bas niveau est
cod´e en surjudppdwlrq edv qlyhdx.
´
Ecrivez en jasmin un programme nomm´e Cesar.j qui permet de coder ou de d´ecoder un
message donn´e en utilisant un d´ecalage donn´e. Le programme devra ˆetre lanc´e d’une des fa¸cons
suivantes : pour coder avec un d´ecalage de 3,
% java Cesar -c 3 "programmation bas niveau"
et pour d´ecoder avec un d´ecalage de 3,
% java Cesar -d 3 "surjudppdwlrq edv qlyhdx"
Vous pr´evoirez les ´el´ements suivants :
– si le nombre d’arguments sur la ligne de commandes est strictement plus petit que 3, alors
afficher le message :
usage : java Cesar <-c ou -d> <decalage> <message>
et quitter le programme ;
– si le premier argument sur la ligne de commandes est diff´erent de -c et de -d, alors afficher
le message pr´ec´edent et quitter le programme ;
– respecter la casse : pour un d´ecalage de 3, la lettre pest cod´ee par set la lettre Ppar S,
idem pour le d´ecodage ;
– tout caract`ere du message qui n’est pas une lettre ne doit pas ˆetre cod´e ou d´ecod´e.
3 Quelques ´el´ements techniques
– Transformation de la chaˆıne de caract`eres "3" en l’entier 3: placer la chaˆıne au sommet de
la pile et faire appel `a l’instruction
invokestatic java/lang/Integer/parseInt(Ljava/lang/String;)I
– Les caract`eres sont manipul´es au moyen de leur code ASCII. Par exemple,
1