Laboratoire 7 - Routines
ASCII vers entier
Écrire la routine atoi
(dans un programme atoi.s
) qui prend un paramètre une chaine de caractère représentant un entier décimal et retourne l’entier correspondant.
Note: la conversion s’arrete quand un non chiffre est rencontré.
Exemples:
.data
test1: .string "123" # atoi doit donner 123
test2: .string "toto" # atoi doit donner 0
test3: .string "42toto" # atoi doit donner 42
Somme des arguments
Écrire un programme soma.s
qui fait la somme de tous les arguments de la ligne de commande en utilisant atoi
pour les convertir en entier.
Comparaison de chaînes
Écrire un programme strcmp.s
qui lit deux chaines de caractères et affiche la plus grande des deux dans l’ordre lexicographique.
Pour ce faire, implémentez un routine strcmp
qui prend deux pointeurs vers des chaines de caractères (dans a0
et a1
) et retourne dans a0
le résultat de leur comparaison lexicographique:
- -1 si
a0
est inférieur àa1
- 0 si
a0
est égal àa1
- 1 si
a0
est supérieur àa1
Tri de chaînes
Écrire un programme sort.s
qui lit un maximum de 20 lignes de 80 caractères et les affiche triés dans l’ordre lexicographique. On s’arrête également de lire quand une ligne vide est rencontrée.
Notes:
- Inspirez-vous du tri à bulles
tri.s
vu au cours 06 mais appelezstrcmp
pour la comparaison. - Inspirez-vous du programme
tac.s
du laboratoire précédent pour la lecture des 20 lignes.