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

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)"

Présentations similaires


Annonces Google