Tp 5 : Votre premier programme en assembleur faisant quelque chose



L'objectif

Le but de ce tp est de vous montrer qu’il est possible de faire un peu de programmation en assembleur, sans avoir pour objectif de ne faire que cela.

Le temps imparti

1h

Oui, seulement 1H... Après, direction le TP suivant...

Le sujet

Un peu de programmation ne peut pas faire de mal. Je suis sûr que cela va vous plaire ... ;)

A faire

Saisir le programme suivant (en le comprenant !).

First.s
  1. .align 4
  2. .data
  3. Question:
  4. .ascii "Avez-vous passe un bon week-end (O/N) ?"
  5. Reponse1:
  6. .string "\12Dommage pour vous ! J'en suis navré! \12"
  7. Reponse2:
  8. .string "\12Je suis content pour vous ! \12"
  9. .text
  10. .global main
  11. main:
  12. # Prépare le cadre de pile
  13. pushl %ebp
  14. movl %esp,%ebp
  15. # Pose la question
  16. pushl $Question
  17. call puts
  18. addl $4,%esp
  19. # Lit la réponse
  20. call getchar
  21. # Teste la réponse
  22. cmpb 111,%al # est-ce o ?
  23. je oui
  24. pas.oui: # Affiche reponse1
  25. pushl $Reponse1
  26. call puts
  27. addl $4,%esp
  28. jmp fin # Termine le programme
  29. oui: # Affiche reponse2
  30. pushl $Reponse2
  31. call puts
  32. addl $4,%esp
  33. fin:
  34. # Détruit le cadre de pile
  35. movl %ebp,%esp
  36. popl %ebp
  37. ret

L'assembler et faire l’édition des liens.
Tester.

Modifier le source du programme afin que l'utilisateur ne puisse saisir que les lettres o, O, n ou N.
Toute autre saisie doit être filtrée, et la question reposée.

Remarque : pour obtenir les codes de la table ascii, utliser la commande :

$ man ascii


Exercices pour ceux qui sont en avance et pour les plus courageux.

Modifier le programme first (vous pouvez l’appeler second) de façon à ce que la personne saisisse une chaîne de caractères telle que OUI, oui, NON ou non.
Pour cela vous pouvez vous aider du cours sur la manipulation des chaînes de caractères.

Dans un premier temps, ne faire la comparaison qu’avec la chaîne de caractères oui en minuscules.

Remarque : Penser à me réclamer le corrigé pendant l'Amphi, car il est certain que je vais oublier.


Modifier le second programme afin que la personne ne puisse saisir que trois caractères plus la touche entrée.


Retour à la liste des TP