La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tp°4 Les procédures et interruptions en Assembleur (Tasm)

Présentations similaires


Présentation au sujet: "Tp°4 Les procédures et interruptions en Assembleur (Tasm)"— Transcription de la présentation:

1 Tp°4 Les procédures et interruptions en Assembleur (Tasm)

2 Les Procédures Pour déclarer une procédure en assembleur Syntaxe: proc near …….. ret endp

3 Exemple: ecrire_message proc near mov ax, data mov ds, ax mov dx, offset message1 mov ah, 09h int 21h ret ecrire_message endp Les Procédures

4 Appel dune procédure: Syntaxe: call Exemple: call ecrire_message Les Procédures

5 pile segment stack pp dw 20 dup (?) pile ends data segment message1 db "bonjour",'$' data ends assume cs:code, ds:data, ss:pile code segment debut: mov cx, 3 boucle: call ecrire_message loop boucle mov ah,4ch int 21h ecrire_message proc near mov ax, data ; fixer le registre segment de donnée mov ds, ax ; charger ds par l'adresse de la chaine mov dx, offset message1 ; reperer le début mov ah, 09h ; préparer l'interruption d'affichage du texte int 21h ; appeler l'interruption ret ecrire_message endp code ends end debut Les Procédures

6 1.Écrivez ce programme et observer son exécution sous TD de tasm 2.Que fait ce programme? Les Procédures

7 Pour passer des paramètres, il y a deux méthodes: On peut utiliser les registres AX, BX, CX et DX Ou lempilement et dépilement dans une pile Les Procédures

8 Interruptions Une interruption est un petit programme stocké en mémoire qui peut être appelé et qui a une tâche spécifique. Les interruptions permettent l'interactivité entre l'utilisateur et le programme (les entrées/sorties). Pour accéder aux périphériques de lordinateur, il faut le demander au MS-DOS via des interruptions. A chaque périphérique correspond une fonction identifiée par un numéro.

9 Pour lancer une interruption il faut appeler linterruption selon la syntaxe suivante: Syntaxe: int Exemple: int 21 Mais à une interruption, peut y avoir plusieurs fonctions définies chacune pour un périphérique. La valeur de la fonction doit être placée dans le registre AH Interruptions

10 Exemple: mov ah, 09h int 21h ici, est lappel de l'interruption n°= 21h et la fonction n°= 09h. Interruptions

11 Exemple1: Pour arrêter lexécution un programme : mov ah, 4ch int 21h Interruptions

12 Exemple 2: Pour écrire un caractère à l'écran mov ah, 02h int 21h Mais il faut mettre le caractère à afficher dans le registre DL Interruptions

13 interruptions Exemple 3: Écrire une chaîne de caractères à l'écran mov ah, 09h int 21h, Il va falloir écrire une phrase dans un tableau qui se termine par le caractère $ Ensuite donner l'adresse de ce tableau dans DX

14 interruptions Exemple 4: Changer la position du curseur mov ah, 02h int 10h

15 interruptions Exemple 4: Lecture d'une touche au clavier l'interruption 16h gère le clavier. Elle possède deux fonctions intéressantes : 00h: lecture d'une touche. renvoi le code ASCII de la touche dans le registre AL. Si celui-ci vaut 0, alors la touche est étendue, et le code est stocké dans AH 01h, vérification de la présence d'une touche dans le tampon clavier.

16 Tp à remettre Écrire le programme assembleur permettant de trier un tableau de 10 éléments entiers non signés.


Télécharger ppt "Tp°4 Les procédures et interruptions en Assembleur (Tasm)"

Présentations similaires


Annonces Google