• 0:00
    /
    0:00
    Loaded: 0%
    0:00
    Progress: 0%
    Stream TypeLIVE
    0:00
     
    1x
    Advertisement

Les procédures et interruptions en Assembleur (Tasm)

Présentations similaires


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

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

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

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

4 Les Procédures Appel d’une procédure: Syntaxe:
call <nom-procédure> Exemple: call ecrire_message

5 Les Procédures 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

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

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

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 l’ordinateur, 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 Interruptions Pour lancer une interruption il faut appeler l’interruption selon la syntaxe suivante: Syntaxe: int <n°> 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’

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

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

12 Interruptions int 21h 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

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 "Les procédures et interruptions en Assembleur (Tasm)"
Annonces Google