Corrigé TP 6

* Makefile

  Exécutez simplement make pour compiler tous les fichiers ci-dessous.
  Dans la plupart des cas le binaire produit a le même nom que le
  fichier source, sans l'extension.

* aha_write.c

  Le fichier original fourni pour le TP.
  Le Makefile produit aha_write.s automatiquement à partir de ce
  fichier source C.

* aha_write_syscall_norbp.s

  Modification de l'assembleur aha_write.s pour ne plus utiliser rbp
  pour stocker l'adresse du début de frame (exo 2, questions 1 et 2).
  Dans ce fichier on a aussi remplacé l'appel à la fonction write par
  un syscall (exo 3).

* aha_write_mod.s

  Fin de la modif de aha_write.s, où rbp est utilisé pour stocker le
  compteur d'itérations (exo 2, question 3). Noter qu'on utilise en fait
  ebp car on travaille avec un entier 32 bits.

* bare_hello.S

  Exemple de fichier assembleur "nu", n'utilisant aucune fonction de
  la librairie standard C, et ne définissant même pas une fonction main.

  Voir exercice 3, question 2.

  Ce fichier provient de http://cs.lmu.edu/~ray/notes/linuxsyscalls/

* printstuff.s

  Correction de l'exo 4.

* arith.ml

  Correction de l'exo 5. Quand on fait make, ce code est exécuté,
  il compile une expression simple (voir en bas du fichier).
  L'assembleur est généré dans out.s et le binaire produit est out.
  Attention: le binaire out attend un argument, exécuter par exemple
  "./out 16".

* putint.s

  Extrait du fichier printstuff.s qui contient juste la fonction putint,
  utilisée dans le code généré par arith.ml. Ce fichier est utilisé
  à la compilation du code généré par arith.ml.
