Travaux pratiques de programmation informatique niveau licence.
[...] Puis, l'interruption est traitée. A la fin de l'interruption, lors du retour vers le programme de priorité moins importante qui s'est fait interrompre, la pile est « dépilée » partiellement pour restaurer le contexte initial : les registres reprennent les valeurs qu'ils avaient avant l'interruption et le programme initial peut alors poursuivre son exécution normalement. L'exemple suivant met en jeu l'appel d'une interruption avec un changement de contexte et une restauration automatique. ADD AX MOV AX, 5678h INT 9 ; Saut (interruption) dans le 9eme element de la table des vecteurs d'interruption : execution d'une routine specifique et prioritaire ; A ce moment precis, une sauvegarde de contexte est effectuée MOV AX, BX ; Juste avant l'execution de cette instruction, le contexte a été restauré automatiquement au retour de la routine d'interruption. [...]
[...] Ce nombre d'éléments est spécifié lors de la déclaration du tableau, car il s'agit là d'un tableau statique. #include < iostream > int main() { int tableau1D[300]; for(int i [...]
[...] On peut les voir comme des sous-programmes. Afin d'appeler un sous-programme, il faut utiliser l'instruction CALL [NomDuLabel]. Afin de terminer un sous-programme et pour retourner au programme de hiérarchie supérieure juste après la dernière instruction « CALL », il faut utiliser l'instruction RET. RET n'admet pas d'opérande et se place à la fin du sous-programme. Exemple : CALL monSousProgramme ADD AX monSousProgramme PROC ; Début du sous-programme MOV AX, 5678h RET ; Retour de sous programme (saut à l'instruction ADD AX, 1. [...]
[...] Les adresses des vecteurs d'interruption sont définies dans la table des vecteurs d'interruption (Interrupt Vector Table). Ces adresses pointent vers des routines spécifiques ayant pour but de traiter l'interruption (par exemple, intercepter un clic de souris ou un changement d'état sur une entrée logique). Exemple : INT 8 appelle le 8ème vecteur d'interruption. Masquer les interruptions s'effectue via l'instruction CLI (Clear Interrupts). Démasquer les interruptions s'effectue via l'instruction STI (Set Interrupts) Appel / Retour de routine d'interruption Lors de l'entrée dans une routine d'interruption, il faut sauvegarder le contexte du programme qui s'est fait interrompre. [...]
[...] L'instruction MOV AX, BX peut etre correctement executee car le registre AX vaut bien 5678 de nouveau. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture