Vous êtes sur la page 1sur 2

PROGRAMMATION ASSEMBLEUR 80X86

TP N°1 – PROGRAMMATION 80x86

Objectifs :
• Comprendre les modes d'adressage du 8086
• Comprendre la manipulation des caractères et des nombres en assembleur
• Écrire des programmes assembleur simples en utilisant quelques appels de fonctions systèmes du DOS

I. TEST D'UN PETIT PROGRAMME:


Assume CS:Code, DS:Data
Q 1. Commentez les instructions de ce programme;
Data SEGMENT
N1 dw 25h Q 2. Testez - le avec Turbo-debugger;
N2 dw 4
Prod dw ? Précisez :
Data ENDS - les adresses des différents segments ;
- les adresses des variables sous la forme
Code SEGMENT
main : Mov AX, Data DS:OFFSET et l'adresse physique ;
Mov DS,AX
Mov AX, N1
Mov CX, N2 Q 3. Que fait ce programme ?
Mov DX, 0
boucle : Add DX, AX Q 4. Modifiez ce programme pour qu'il tienne que dans
Loop boucle
un seul segment;
Mov Prod, DX
Mov AH, 4Ch
Int 21h
Code ENDS

END main

II. FONCTIONS D'AFFICHAGE:

Q 5. Écrire les programmes qui :


- affiche un caractère ;
- affiche un caractère saisi au clavier par l'utilisateur ;
- affiche une chaîne de caractères ;
- affiche une chaîne de caractère saisie au clavier par l'utilisateur ;

P.J.P. Lycée Dorian : 13/10/2004 @ 00:36 TP n°1 : Programmation 80x86 page 1 / 2


PROGRAMMATION ASSEMBLEUR 80X86

III. PROGRAMMES "SIMPLES" :


Pour chaque programme, vous écrirez d'abord un algorithme.

Q 6. Écrire un programme qui affiche l'alphabet en majuscule ;

Q 7. Écrire un programme qui affiche le caractère saisi au clavier tant que le caractère
est différent de ^d (code ascii 4) ;

Q 8. Écrire un programme qui affiche un octet, contenu dans un registre, en binaire ;

IV. SAISIE AU CLAVIER D'UN NOMBRE DÉCIMAL :


Le but de l'exercice est d'écrire un programme qui lit un entier décimal au clavier et le
sauvegarde en mémoire dans une variable de type octet N1.

Pour cela, commencer par écrire les algorithmes puis les programmes suivants :

Q 9. Lire un caractère au clavier et tester si son code ASCII est celui d'un chiffre. Si
c'est le cas, ranger ce chiffre (et non son code ASCII) dans N1, sinon afficher
"N". (oneread.asm)

Q 10. A partir du programme précédent, écrire un programme (dixfois.asm) qui multiplie


le nombre par 10 avant de le ranger dans N1

Q 11. Écrire maintenant un programme (numread.asm) qui lit un nombre décimal au clavier
et le sauvegarde dans N1. La lecture s'arrête quand le caractère lu n'est pas un
chiffre (plus besoin d'afficher "N"). On ne contrôlera pas le débordement de
capacité.

P.J.P. Lycée Dorian : 13/10/2004 @ 00:36 TP n°1 : Programmation 80x86 page 2 / 2

Vous aimerez peut-être aussi