PROGRAMMATION ASSEMBLEUR 80X86
P.J.P. Lycée Dorian : 13/10/2004 @ 00:36 TP n°1 : Programmation 80x86 page 1 / 2
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
Data SEGMENT
N1 dw 25h
N2 dw 4
Prod dw ?
Data ENDS
Code SEGMENT
main : Mov AX, Data
Mov DS,AX
Mov AX, N1
Mov CX, N2
Mov DX, 0
boucle : Add DX, AX
Loop boucle
Mov Prod, DX
Mov AH, 4Ch
Int 21h
Code ENDS
END main
Q 1. Commentez les instructions de ce programme;
Q 2. Testez - le avec Turbo-debugger;
Précisez :
- les adresses des différents segments ;
- les adresses des variables sous la forme
DS:OFFSET et l'adresse physique ;
Q 3. Que fait ce programme ?
Q 4. Modifiez ce programme pour qu'il tienne que dans
un seul segment;
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 ;
PROGRAMMATION ASSEMBLEUR 80X86
P.J.P. Lycée Dorian : 13/10/2004 @ 00:36 TP n°1 : Programmation 80x86 page 2 / 2
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é.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !