Académique Documents
Professionnel Documents
Culture Documents
Interruptions
Procédures
Chap 4 : Programmation assembleur
Conclusion
des architectures 80x86
Manel Abdelhedi
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.
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.
; dernière instruction
; Fin de la procédure
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.
o On appelle la procédure.
o On dépile les paramètres et résultats.
o Plus compliqué mais plus général.
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 :
Procédures
Conclusion
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.