UGA - UFR IM2AG - MASTER 2 CCI
Exercices : codage des procédures et fonctions
1 Appel de fonction ou procédure en ARM
L’instruction permettant l’appel de fonction ou de procédure est nommée bl. Son
effet est de sauvegarder l’adresse de l’instruction qui suit l’instruction bl ... (on
parle de l’adresse de retour) dans le registre r14 aussi nommé lr (Link Register)
avant de réaliser le branchement à la fonction ou procédure. Le retour se fait alors par
l’instruction mov pc, lr.
Le schéma standard d’un programme Pappelant une fonction ou procédure Qpeut
s’écrire :
P: ... Q: ...
bl Q ...
... ...
mov pc, lr
2 Codage d’une fonction avec paramètres passés par
les registres
On considère une fonction qui retourne un code pour un caractère donné.
fonction code (c: caractère, n: entier naturel) --> caractère
{ code(c, n) est le caractère obtenu par une translation de n caractères
à partir de c en considérant l’ordre alphabétique usuel.
Par exemple code(’a’, 3) est le caractère ’d’.
préconditions : c est une lettre minuscule, 0 <= n <= 26 }
Les caractères sont représentés par un entier (type int en C) qui est la valeur de
leur code ascii. On donne ci-dessous un algorithme et un programme en C pour la
fonction code.
code (ascii_c, n) :
retour :
si ascii_c + n <= 122 alors acsii_c + n sinon acsii_c + n - 26
int code (unsigned int ascii_c, unsigned int n) {
int res;
if (ascii_c + n <= 122)
res = ascii_c + n;
else res = ascii_c + n - 26;
return res;
}
1