programmation systeme sous ms dos cet assembleur

publicité
PROGRAMMATION SYSTEME
SOUS MS-DOS
CET ASSEMBLEUR
RESUME
C e t ouvrage présente des techniques de programmation destinées à
optimiser les performances de programmes devant être exécutés sous M
S-DOS.
Première partie : Les outils de programmation
Programmation système en C et en assembleur
Interfaçage de C et de l'assembleur
Mise au point d'un programme
Deuxième partie : Les ressources
Fonctions et interruptions du DOS
Les fonctions du BIOS
Les autres ressources
Compatibilité et performance
Troisième partie : Les unités
Techniques d'affichage rapide
Anatomie d'un gestionnaire d'unité
Quatrième partie: Gestion de la mémoire
Mémoire étendue: une interface C
Programmes TSR
TABLE DES MATIERES
Introduction
XI
Première partie Outils de programmation
1
Chapitre 1
3
Programmation système en C et en assembleur
Le choix de C et de l'assembleur
Les autres langages de programmation
Les avantages de C et de l'assembleur
Mise en oeuvre de C
Les bibliothèques C commerciales
Optimisation des programmes C
Constitution d'un fichier batch de compilation et d'édition de liens des programmes C
Mise en oeuvre de l'assembleur
Recours au langage d'assemblage
Optimisation des routines assembleur
Procédure générique pour l'obtention de fichiers .EXE
Chapitre 2
Interfaçage de C et de l'assembleur
Appel d'une procédure assembleur à partir d'un programme C
Déclaration des segments
Influence du choix d'un modèle mémoire
Echange des données
Contenu des registres
Assemblage en ligne
Mise en oeuvre de l'utilitaire Make
Appel d'une fonction C à partir d'un module assembleur
Chapitre 3
Mise au point d'un programme
Prévention des erreurs
Développement par étapes
5
6
7
11
11
13
24
25
25
31
45
49
51
52
56
57
63
63
64
65
71
73
74
Développement par étapes
Vérification des types des arguments
Mise en oeuvre d'un utilitaire LINT
Les différents niveaux de sévérité des messages de mise en garde
Quelques erreurs communes de programmation
Affichages intermédiaires dans la phase de mise au point
Les logiciels de déverminage
DEBUG
SYMDEB
Code View
Autres debuggers
Mise en oeuvre d'outils matériels
Assistance matérielle pour la mise au point des programmes
Assistance matérielle par accès direct à l'unité centrale
Deuxième partie
Les ressources
74
74
77
77
78
79
82
83
83
83
86
86
86
87
89
Chapitre 4
Fonctions et interruptions du DOS
Les mécanismes d'interruption
Les interruptions matérielles internes
Les interruptions matérielles externes
Les interruptions logicielles
Accès aux routines d'interruption logicielle en assembleur
Accès aux routines d'interruption logicielle en C
Choix d'une fonction d'interruption
Les fonctions MS-DOS
Utilisation des fonctions MS-DOS
Routines DOS classées par catégories
91
94
94
95
95
98
100
105
106
108
112
Chapitre 5
Les fonctions du BIOS
Utilisation des fonctions BIOS
Les fonctions BIOS classées par catégories
Sorties vidéo : l'interruption 10h
Gestion du disque : l'interruption 13h
Gestion du port série : l'interruption 14h
Gestion des unités de cassettes : l'interruption 15h
Fonctions étendues spécifiques aux modèles AT : l'interruption 15h
Gestion du clavier : l'interruption 16h
Gestion du port imprimante : l'interruption 17h
Gestion de la date et de l'heure : l'interruption 1Ah
Autres interruptions du BIOS
153
157
158
158
172
173
175
175
175
182
183
183
Chapitre 6
Les autres ressources des ordinateurs exploités sous MS-DOS
Le préfixe de segment de programme
Accès au PSP à partir d'un programme assembleur
Accès au PSP à partir d'un programme C
Principaux champs du PSP
Les zones de données de la mémoire basse
400h-4ABh : zone de communication du BIOS
4ACh-4EFh : zone réservée
4FOh-4FFh : zone de communication utilisateur
500h-5FFh : zone de communication du DOS
Ctrl-Break et interruptions d'erreurs critiques
Ctrl-Break
Erreurs critiques
Interruptions matérielles
Les interruptions matérielles externes
Routines d'interruption matérielle
Les autres ressources de MS-DOS
Les vecteurs d'interruption pointant sur des zones de données
Les ports d'E/S
La mémoire vidéo
Les gestionnaires d'unités installables
Chapitre 7
Compatibilité et performance
Compatibilité : règles générales de développement
Détermination de l'environnement d'exploitation
Le tableau des ressources
Initialisation dynamique
Installation par l'utilisateur
Utilisation des ressources disponibles
Utilisation de ressources spécifiques à la configuration
Utilisation des informations concernant le type d'ordinateur
Adaptation des programmes aux différentes versions du système
d'exploitation
185
188
188
191
192
204
205
208
208
208
209
210
218
228
230
232
245
245
248
248
248
249
252
254
255
261
280
282
283
282
285
d'exploitation
Adaptation des programmes à l'environnement d'exploitation
285
287
Troisième partie Les unités
289
Chapitre 8
Techniques d'affichage rapide
Les trois techniques fondamentales d'affichage vidéo
Affichage gouverné par le gestionnaire ANSI.SYS
Affichages gouvernés par le BIOS et codes d'attributs
Ecriture directe en mémoire vidéo
Programme de comparaison des vitesses d'affichage
Générateur d'écran
Les fonctions du générateur d'écran
Structure du générateur d'écran
Développements ultérieurs du programme ECRAN.C
Utilisation de routines vidéo écrites en assembleur dans un programme C
291
293
295
299
304
329
340
340
371
371
373
Chapitre 9
Anatomie d'un gestionnaire d'unité
Gestionnaires de blocs et gestionnaires de caractères
Les conventions de noms
Nombre d'unités
Différences fonctionnelles
La procédure d'installation
Anatomie d'un gestionnaire d'unité
La zone en-tête
La zone de données
La routine de stratégie
La routine d'interruption
Les fonctions
00: INIT
01 : Vérification unité (gestionnaires de type bloc uniquement)
02 : Construction d'un bloc de paramètres BIOS (gestionnaires de type bloc uniquement)
03,04,08,09, 12 : Entrées/sorties
05 : Entrées non destructives (gestionnaires de type caractère uniquement)
06: Etat entrées (gestionnaires de type caractère uniquement)
07, 11 : Vidages tampons entrées/sorties (gestionnaires de type caractère uniquement)
10 : Etat sorties (gestionnaires de type caractère uniquement)
13, 14 : Ouverture/fermeture (version 3 du DOS uniquement)
15 : Support amovible (gestionnaires de type bloc et version 3 du DOS uniquement)
16 : Sortie autorisée tant qu'unité disponible (gestionnaires de type caractère et version
3 du DOS uniquement)
19 : Requête IOCTIL générique (gestionnaires de type bloc et version 3.2 du DOS uniquement)
23 : Lit identificateur unité logique (gestionnaires de type bloc et version 3.2 du
DOS uniquement)
24 : Positionne identificateur unité logique (gestionnaires de type bloc et version 3.2 du)
DOS uniquement
Mise au point d'un gestionnaire d'unité
389
394
394
395
395
396
399
415
417
418
419
424
425
428
430
431
434
435
436
437
438
439
Quatrième partie
455
Gestion de la mémoire
Chapitre 10
Mémoire étendue: une interface C
Généralités sur la mémoire EMS
Une interface C pour la gestion de la mémoire étendue EMS
Conversion des codes d'erreurs
Les fonctions de l'interface C
Installation d'une fonction supplémentaire
Utilisation de la mémoire étendue à partir d'un programme C
Programmes non résidents
Programmes résidents
Chapitre 11
Programmes TSR
Contraintes liées à l'écriture d'un programme TSR
Coexistence de plusieurs programmes TSR
Coexistence avec le système d'exploitation
Coexistence avec le programme s'exécutant en avant-plan
Protection des accès disque du BIOS
Coexistence avec les gestionnaires d'interruption
Réentrance du code TSR
Le standard Microsoft
Réalisation d'un programme TSR
Appel de la procédure assembleur tsr par un programme C
Le module assembleur
Développements ultérieurs du programme
440
442
444
445
447
457
460
464
478
480
487
488
488
495
497
501
501
509
517
522
523
524
526
530
534
537
562
Développements ultérieurs du programme
562
Annexe A
Tableau des vecteurs d'interruption
565
Annexe B
Les fonctions MS-DOS
573
Annexe C
Les fonctions BIOS
583
Annexe D
Le préfixe de segment de programme
643
Annexe E
Carte de la mémoire
647
Annexe F
Carte des ports d'E/S
653
Annexe G
Résumé des fonctions source
657
Annexe H
Bibliographie
683
TOP
Téléchargement