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