ASSEMBLEUR 80X86
1Introduction:............................................................................................................................................................4
2Présentation:........................................................................................................................................................4
3Historique:...........................................................................................................................................................4
4Précisions sur ce document:................................................................................................................................4
5Pourquoi apprendre l’assembleur ?.........................................................................................................................5
6Les registres:............................................................................................................................................................6
7registres généraux (8, 16, 32 bits).......................................................................................................................6
8registres de segment (16 bits)..............................................................................................................................6
9registres de déplacement (16, 32 bits).................................................................................................................6
10Le pointeur d’instruCtion (16, 32 bits)..............................................................................................................6
11Le registre de drapeaux (32 bits).......................................................................................................................6
12Les AUTRES registreS:....................................................................................................................................6
13La mémoire:..........................................................................................................................................................6
14Les modes d’adressage de la mémoire:.................................................................................................................7
15Les instructions de BASE:.....................................................................................................................................8
16L'Affectation:.....................................................................................................................................................8
17SAut:..................................................................................................................................................................8
18Affectation conditionnelle:................................................................................................................................8
19Les entrées sorties:............................................................................................................................................9
20Traiter des adresses:..........................................................................................................................................9
21Calcul arithmétique:..........................................................................................................................................9
22Opérations logiques:..........................................................................................................................................9
23Traiter des bits:..................................................................................................................................................9
24Les fonctions:....................................................................................................................................................9
25Les interruptions:...............................................................................................................................................9
26Les rotations:...................................................................................................................................................10
27Les déplacements:...........................................................................................................................................10
28LeS drapeauX:.................................................................................................................................................10
29Divers:.............................................................................................................................................................10
30Attention..........................................................................................................................................................10
31Les instructions plus évoluées:............................................................................................................................11
32Les boucles:.....................................................................................................................................................11
33Instructions sur les chaines de caractere:........................................................................................................11
34Les conversions:..............................................................................................................................................12
35Deux autres types:...........................................................................................................................................12
36Ce que je ne détaillerai pas:.............................................................................................................................13
Spécifique au mode protégé:...........................................................................................................................13
Divers:.............................................................................................................................................................13
37Les interruptions:.................................................................................................................................................14
38principe d'utilisation:.......................................................................................................................................14
39Comment se déroule une interruption:............................................................................................................14
40Les interruptions les plus importantes:................................................................................................................15
INT 05h:..............................................................................................................................................................15
INT 10h:..............................................................................................................................................................15
INT 15h:..............................................................................................................................................................16
INT 17h:..............................................................................................................................................................16
INT 21h:..............................................................................................................................................................16
41INT 21h:..........................................................................................................................................................17
Généralités:......................................................................................................................................................17
INT 33h:..............................................................................................................................................................18
42Debug:.................................................................................................................................................................19
43Les paramètres des commandes:.....................................................................................................................19
44Les COMMANDES:.......................................................................................................................................19
Ecrire:..............................................................................................................................................................19
Lire:.................................................................................................................................................................19
Travailler sur des blocs:..................................................................................................................................19
Travailler avec les ports:.................................................................................................................................19
Version 2.0 page Assembleur 80X86
11/08/1997 1 / 36 © Laurent CONSTANTIN
Lecture et écriture dans un fichier:..................................................................................................................19
Débugguage:....................................................................................................................................................19
Divers:.............................................................................................................................................................19
45EMploi de debug Pour faire un dump de la mémoire:....................................................................................19
46Utilisation de debug pour COMPILER de l’assembleur:................................................................................20
47Réaliser un formatage bas niveau avec debug:................................................................................................20
48MASM:................................................................................................................................................................21
49Utilisation de MASM:.....................................................................................................................................21
50Structure d’un programme .COM:..................................................................................................................21
51Les constantes:................................................................................................................................................21
52Les variables:...................................................................................................................................................21
53Les opérandes:.................................................................................................................................................22
54Le coeur du programme:.................................................................................................................................22
55Le ASSUME:..................................................................................................................................................22
56Les macros:......................................................................................................................................................22
Comparaison avec les procédures:..................................................................................................................22
Déclaration:.....................................................................................................................................................22
Utilisation:.......................................................................................................................................................23
Les tests:..........................................................................................................................................................23
Petit exemple:..................................................................................................................................................23
57 portions de programmes:....................................................................................................................................23
58L'écran:............................................................................................................................................................23
Ecrire une chaîne:............................................................................................................................................23
Effacer l’ecran:................................................................................................................................................24
Ecrire en utilisant la mémoire vidéo:...............................................................................................................24
59Le système:......................................................................................................................................................24
Voir les paramètres passés au programme:.....................................................................................................24
Retourner un code d'erreur à DOS:.................................................................................................................24
Rebooter l'ordinateur à chaud: ne marche pas dans une fenêtre DOS.............................................................24
Rebooter l'ordinateur à froid: ne marche pas dans une fenêtre DOS..............................................................24
Planter l'ordinateur:.........................................................................................................................................24
60Le BUZZER:...................................................................................................................................................25
Emettre un bip:................................................................................................................................................25
Emettre une fréquence:....................................................................................................................................25
61Le clavier:........................................................................................................................................................25
Vider le buffer:................................................................................................................................................25
Attendre l'appui sur une touche:......................................................................................................................25
Voir si une touche a été appuyée:....................................................................................................................25
62L'horloge:........................................................................................................................................................26
Connaître la date,...:........................................................................................................................................26
Connaître l'heure,...:........................................................................................................................................26
Attendre 10 secondes:.....................................................................................................................................26
Attendre BX/18,2 secondes:............................................................................................................................26
63Les disques:.....................................................................................................................................................26
Voir si un lecteur est prêt:...............................................................................................................................26
Savoir sur quel disque on a booté:..................................................................................................................26
Connaître le type du disque par défaut:...........................................................................................................26
64Un exemple complet:.......................................................................................................................................27
65Un TSR (Terminate and Stay Resident):.........................................................................................................28
66Rediriger des interruptions:.............................................................................................................................29
67Imprimer:.........................................................................................................................................................29
68Afficher le contenu d’un fichier:.....................................................................................................................30
69Divers:.............................................................................................................................................................30
70Un peu de vidéo:.................................................................................................................................................31
71Les modes vidéo:.............................................................................................................................................31
72Passer en mode VGA......................................................................................................................................31
73Ecrire un pixel:................................................................................................................................................32
74Attendre le retour du faisceau d’électrons de l’écran (retour page):...............................................................32
75ConnaîtrE la palette:........................................................................................................................................33
76affecter la palette:............................................................................................................................................33
77Effacer l'écran:.................................................................................................................................................33
78Afficher un point:............................................................................................................................................33
79l’assembleur et le C:............................................................................................................................................34
Version 2.0 page Assembleur 80X86
11/08/1997 2 / 36 © Laurent CONSTANTIN
80Exemple:..........................................................................................................................................................34
81Utiliser les interruptions DOS:........................................................................................................................34
82Voir la valeur présente à une adresse:.............................................................................................................34
83Rediriger une erreur critique:..........................................................................................................................34
84Accéder à la table des vecteurs d’interruption:...............................................................................................34
85Spécifique à Watcom:.....................................................................................................................................34
Definir une fonction assembleur dans le code CPP:.......................................................................................34
Importer une fonction depuis un fichier .ASM:..............................................................................................35
86Divers:.................................................................................................................................................................35
87Plus rapide:......................................................................................................................................................35
88comment connaitre si le CPU est 8086, 80286, .............................................................................................35
89Pas d’effet de bord:.........................................................................................................................................35
90Conclusion:..........................................................................................................................................................36
91Couverture du sujet:........................................................................................................................................36
92Thèmes non abordés:.......................................................................................................................................36
93Où approfondir ses connaissances:..................................................................................................................36
Version 2.0 page Assembleur 80X86
11/08/1997 3 / 36 © Laurent CONSTANTIN
A PROPOS
Ce document est un «résumé», car il ne donne que des explications succinctes des thèmes abordés.
C’est donc un «pense bête» plutôt qu’un document de formation.
En conséquence, si vous êtes novice, vous risquez de ne pas comprendre les concepts qui seraient nouveaux pour vous.
Les personnes expérimentées, quant à elles, y trouveront un pense bête clair et concis.
NOUS
AVERTISSEMENT
En aucun cas Laurent CONSTANTIN ne pourra être tenu pour responsable des préjudices, de quelque nature que ce soit,
pouvant résulter de l’utilisation du contenu de ce document.
DROITS D’AUTEUR
Article 122-4 du Code de la Propriété Intellectuelle (Loi du 11 mars 1957, article 40, alinéa 1er):
"Toute représentation ou reproduction, intégrale ou partielle, faite sans le consentement de l'auteur ou de ses ayants
droit ou ayants cause, est illicite."
Article 122-5 2° du Code de la Propriété Intellectuelle (Loi du 11 mars 1957, article 41, alinéa 2ième):
Ne sont autorisées que "les copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées
à une utilisation collective".
Article 122-5 3° du Code de la Propriété Intellectuelle (Loi du 11 mars 1957, article 41, alinéa 3ième):
Dans le cadre d'une utilisation collective, "sous réserve que soient indiqués clairement le nom de l’auteur et de la
source" ne sont autorisées que les "analyses et courtes citations dans un but d'exemple et d'illustration".
Articles 335-2 et suivants du Code de la Propriété Intel. (correspondent aux articles 425 et suivants du Code Pénal)
Ces articles définissent les peines encourues si vous ne respectez pas les droits d’auteur.
1 INTRODUCTION:
2 PRÉSENTATION:
Sans objet.
3 HISTORIQUE:
Sans objet.
4 PRÉCISIONS SUR CE DOCUMENT:
L’assembleur 80x86 est un domaine très vaste.
Il y a les instructions spécifiques au 8086, au 80286, 80386, 80486, Pentium, les instructions MMX, ...
Pour ne pas vous embrouiller entre ces différentes versions, je vais faire ce qui suit:
je présente ce qui marche sur un 386
Donc, comme conséquences:
·je ne vais plus parler de numéro de processeur: je ne vous embrouillerai pas
·les programmes que vous ferez à l’aide de cette documentation ne seront pas optimisés pour un 80486 ou
586
·les programmes que vous ferez à l’aide de cette documentation ne marcheront peut être pas sur 8086 ou
286
Dernière restriction: à l’intérieur du domaine du 80386, je ne parlerai que de ce qui est le plus important pour faire de
petits programmes.
Version 2.0 page Assembleur 80X86
11/08/1997 4 / 36 © Laurent CONSTANTIN
vous
En contrepartie, si vous y trouvez des
erreurs, si vous avez des remarques ou si
vous décelez des oublis, vous vous engagez
à les lui indiquer.
L’accès à ce résumé est une faveur que
l’auteur vous accorde.
l’auteur
Laurent CONSTANTIN
«Champ de la Sevrette»
47120 Saint Pierre sur
Dropt
France
5 POURQUOI APPRENDRE L’ASSEMBLEUR ?
“I believe that all programmers should learn the assembly language for the machines on which they work. ...
Learning assembly intimately familiarizes the programmer with the hardware on which s/he is working. The
more you know about your hardware environment, the better off you are.” (source: ASM Magazine)
Version 2.0 page Assembleur 80X86
11/08/1997 5 / 36 © Laurent CONSTANTIN
1 / 36 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 !