Vous êtes sur la page 1sur 5

Plan du cours

Interruptions

Procédures
Chap 4 : Programmation assembleur
Conclusion
des architectures 80x86

Partie 3 : Interruptions et procédures

Manel Abdelhedi

2 Chapitre 4 : Langage Assembleur IA1

Interruptions
Interruptions Les entrées/sorties en assembleur
Le flot ordinaire d’un programme doit pouvoir être interrompu Pour réaliser les opérations standards (affichage, saisie), le système
pour traiter des événements nécessitant une réponse rapide. d’exploitation (DOS) fournit les fonctions suivantes :
Interruption Affichage d’un caractère
Pour appeler une opération système ou matérielle. mov DL, ‘A’ ; caractère A est transféré dans DL
Généralement d’entrée/sortie mov AH, 02h ; fonction no.2
Une interruption est une espèce de sous-programme int 21h ; appel de l’interruption
préexistant dans la machine. Saisie d’un caractère (avec écho)
L’appel se fait via l’instruction int 21h. mov AH, 01h ; fonction no.1
Le registre AH contient un numéro qui référence la int 21h ; résultat est mis dans AL
fonctionnalité qu’on veut utiliser.

3 Chapitre 4 : L’assembleur 80x86 IA1 4 Chapitre 4 : L’assembleur 80x86 IA1


Interruptions Interruptions
Les entrées/sorties en assembleur Les entrées/sorties en assembleur
Saisie d’un caractère (sans écho) Saisie d’une chaine de caractère
mov AH, 07h ; fonction no.7ou 8 mov AH, 0Ah ; fonction 0Ah et le mettre en mémoire
int 21h ; résultat est mis dans AL ; pointé par DX
; ce caractère n’est pas affiché à l’écran
int 21 h
Affichage d’une chaîne de caractère :
Arrêt du programme
mov DX, offset chaine ; pointe vers l’adresse du premier
; caractère de la chaine de caractère mov AH, 4Ch
mov AH, 09h ; fonction no. 9 int 21h
int 21h ; appel de l’interruption A mettre à la fin de chaque fin programme. C’est l’équivalent
return(0) en C

5 Chapitre 4 : L’assembleur 80x86 IA1 6 Chapitre 4 : L’assembleur 80x86 IA1

Procédures
Plan du cours Définition
Interruptions Les procédures sont des blocs d’instructions permettant de
réaliser un traitement spécifique.
Procédures La notion de procédure en assembleur correspond à celle de
fonction en langage C.
Conclusion
Elle peut être appelée depuis n’importe quel point du
programme.

7 Chapitre 4 : Langage Assembleur IA1 8 Chapitre 4 : L’assembleur 80x86 IA1


Procédures Procédures
Définition Déclaration d’une procédure
L’exécution d’une procédure est déclenchée par un programme On déclare une procédure dans le segment d’instruction comme
appelant. suit :
Une procédure peut elle-même appeler une autre procédure, et
ainsi de suite. ; Procédure nommée nomProc

; dernière instruction
; Fin de la procédure

9 Chapitre 4 : L’assembleur 80x86 IA1 10 Chapitre 4 : L’assembleur 80x86 IA1

Procédures Procédures
Appel Passage de paramètres
Appel d’une procédure Une procédure effectue un traitement sur des paramètres qui
CALL nomProc sont fournies par le programme appelant, et produit un
résultat qui est transmis à ce programme.
L’instruction CALL effectue les opérations suivantes :
Plusieurs stratégies :
Empiler la valeur de IP qui représente à ce moment
l’adresse de l’instruction qui suit call (l’adresse de retour). Passage par registre : les valeurs des paramètres sont
contenues dans des registres du processeur.
Placer dans IP l’adresse de la première instruction de la
procédure. o Simple mais qui ne convient que si le nombre de
paramètres est petit.
Et l’instruction RET :
o Mais les registres sont peu nombreux et on doit toujours
Dépiler une valeur et la ranger dans IP. utiliser les mêmes à chaque appel donc assez
contraignant.

11 Chapitre 4 : L’assembleur 80x86 IA1 12 Chapitre 4 : L’assembleur 80x86 IA1


Procédures Procédures
Passage de paramètres Passage de paramètres
Plusieurs stratégies : Exemple : Ecrire une Procédure qui retourne le double de la
somme de AX et DX.
Passage par la pile :
o On empile les valeurs des paramètres de la procédure. Avec passage par registre :

o On appelle la procédure.
o On dépile les paramètres et résultats.
o Plus compliqué mais plus général.

13 Chapitre 4 : L’assembleur 80x86 IA1 14 Chapitre 4 : L’assembleur 80x86 IA1

Procédures Procédures
Passage de paramètres Passage de paramètres
Avec passage par la pile : L’appel de la procédure « calcul » avec passage par la pile est :

Cette technique met en œuvre un nouveau registre, BP (Base


Pointer), qui permet de lire des valeurs sur la pile sans les
dépiler ni modifier SP.

La procédure « calcul » va lire la pile pour obtenir la valeur des


paramètres.
Il faut bien comprendre quel est le contenu de la pile après le
call.

15 Chapitre 4 : L’assembleur 80x86 IA1 16 Chapitre 4 : L’assembleur 80x86 IA1


Procédures
Passage de paramètres Plan du cours
La procédure « calcul » s’écrit donc : Interruptions

Procédures

Conclusion

17 Chapitre 4 : L’assembleur 80x86 IA1 18 Chapitre 4 : Langage Assembleur IA1

Conclusion
Aujourd’hui, il est très rare de créer un programme autonome
écrit complètement en langage assembleur.
L’assembleur est utilisé dans la programmation bas niveau de
pilotes de périphériques.
Pourquoi apprendre l’assembleur ?
Quelques fois, le code écrit en assembleur peut être plus rapide et
plus compact que le code généré par un compilateur.
Apprendre à programmer en assembleur aide à acquérir une
compréhension plus profonde de la façon dont fonctionne un
ordinateur.
Aide à mieux comprendre comment les compilateurs et les
langages de haut niveau fonctionnent.

19 Chapitre 5 : Langage Assembleur MC1

Vous aimerez peut-être aussi