
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 - INTRODUCTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Le programme DEBUG est un utilitaire permettant de créer un environnement de tests pour contrôler le déroulement d'un programme. Les erreurs détectées peuvent être directement corrigées dans le programme. DEBUG permet également de charger, modifier ou afficher un fichier, de même il permet l'exécution de fichiers objets qui sont des programmes exécutables. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 - Comment démarrer DEBUG | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pour lancer DEBUG, tapez :DEBUG [unité:] [chemin d'accès] [nom de fichier [:surf]] [arg1] [arg2] Si le nom de fichier est précisé, il peut alors être traité. Sinon, il faut le charger au moyen des commandes NAME et LOAD. Une série d'arguments (arg1. arg2) peut être associée au nom de fichier et est alors transmise au fichier lors de son chargement. Lorsque DEBUG est lancé, les registres et les indicateurs sont affectés de la manière suivante : - les registres de segment (CS, DS, ES et SS) sont initialisés au premier segment suivant la fin du programme DEBUG ; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 - Commandes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Cette partie décrit l'utilisation des commandes DEBUG PARAMETRES Toutes les commandes DEBUG acceptent des paramètres, excepté la commande QUIT.
- Caractéristiques communes à toutes les commandes Une commande peut être introduite au moyen d'une seule lettre, souvent suivie d'un ou de plusieurs paramètres. Les commandes et les paramètres sont constitués indifféremment de majuscules ou de minuscules et peuvent comporter des séparateurs (espaves ou virgules). Ctrl et Break simultanés mettent fin à une commande. L'affichage en défilement en continu peut être arrêté momentanément en appuyant simultanément sur les touches Ctrl et S; il reprend lorsque une touche quelconque est enfoncée. - Commandes
(A)SSEMBLE Rôle : assemble en mémoire les instructions en langage assembleur. Syntaxe : A [<adresse>] Commentaires : les entrées numériques sont données en hexdécimal. Les instructions sont assemblées en mémoire à partir de l'adresse précisée. Si elle n'est pas spécifiée, elles seront assemblées dans la zone CS : 100 si c'est la première commande ASSEMBLE, sinon elles suivront la dernière instruction assemblée. ^erreuret donne à nouveau la dernière adresse d'assemblage. Le programme accepte la syntax e du langage assembleur standart pour le 8088/8086 (ainsi que le 8087).
(C)OMPARE Rôle : compare le contenu de deux zones de mémoire. Syntaxe : C <plage> <adresse> Commentaires : la comparaison s'effectue sur le nombre d'octets spécifiés par le paramètre plage. L'adresse et le contenu des différents octets sont affichés de la manière suivante:
(D)UMP Rôle : afficher le contenu d'une zone de mémoire. Syntaxe : D <adresse> Commentaires : l'affichage se fait en deux parties: La commande DUMP s'utilise de deux façons différentes:
(E)NTER Rôle : modifier des octets en mémoire. Syntaxe : E <adresse> [<liste>] Commentaires : le contenu du registre DS est pris comme segment de défaut. La commande E s'utilise de deux façons: Les adresses CS 120 contiennent les octets 41, 42, 43 et 44 ou, en ASCII, A, B, C et D. - elle autorise l'affichage de l'adresse et de son contenu pour en permettre la modification: E <adresse> On peut alors: - soit introduire une nouvelle valeur hexdécimale de un ou de deux caractères: - soit appuyer sur la barre d'espacement pour passer à l'adresse suivante; - soit entrer un tiret (-) pour revenir à l'adresse précédente; - soit appuyer sur la touche Entrée pour sortir de la commande E. (F)ILL Rôle : remplir les adresses précisées dans la plage avec les valeurs données dans la liste. Syntaxe : F <plage> <liste> Commentaires : Si le nombre d'octets contenu dans la liste est inférieur à celui contenu dans la plage, la liste est répétée jusqu'à remplir la plage. La plage de CS:100 à 110 est remplie de FF (G)O Rôle : exécuter le programme présent en mémoire. Syntaxe : G [=<adresse> [<adresse>...]] Commentaires : l'exécution du programme commence à l'adresse CS : IP, sauf si le paramètre =<adresse> est précisé. Dans ce cas, il comence en CS : <adresse>. La commande G s'exécute de deux manières: Remarques (H)EXARITHMETIC Rôle : additionner et soustraire des valeurs hexdécimales. Syntaxe : H <valeur> <valeur> Commentaires : la commande nous donne la somme des deux valeurs et soustrait la seconde de la première.
(I)NPUT Rôle : entrer et afficher en hexdécimal un octet du port d'entrée spécifié Syntaxe : I <adresse port>
(L)OAD Rôle : charger en mémoire un fichier ou des secteurs d'une disquette. Syntaxe : L [<adresse port> [<unité> <secteur> <secteur>]] Commentaires : la commande L s'utilise de deux façons: ◊ L <adresse> <unité> <secteur> <secteur> 109 (6D) secteurs consécutifs à partir du secteur 15 (0F) de la disquette B sont transférés à l'adresse 4BF:210. ◊ L ou L <adresse> (M)OVE Rôle : transférer le bloc de mémoire spécifié par le paramètre <plage> aux emplacements successifs en commençant à l'adresse spécifiée. Syntaxe : M <plage> <adresse> Commentaires : les données de la zone source ne sont pas modifiées sauf si elles recouvrent certaines adresses de la zone de destination.
(N)AME Rôle : la commande NAME permet de formater les blocs de contrôle de fichier contenus aux adresse CS:5C et CS:6C. Les blocs de contrôle de fichier sont définis pour fournir les noms de fichier au programme en cours de traitement ainsi que pour utiliser les commandes WRITE et LOAD. Les spécifications de fichier les autres paramètres éventuels sont placés à l'adresse CS:81, le nombre de caractères est placé en CS:80. AX indique la validité des identificateurs d'unité. Syntaxe : N [unité:] [chemin d'accès] nom de fichier Commentaires : la commande N désigne le fichier qui pourra être utilisé par les commandes LOAD et WRITE. Elle permet aussi de définir les spécifications de fichier ou d'autres paramètres nécessaires au traitement du programme en cours de DEBUGGING.
(O)UTPUT Rôle : envoyer un octet au port de sortie désigné. Syntaxe : O <adresse port> <octet> Commentaires : les données de la zone source ne sont pas modifiées sauf si elles recouvrent certaines adresses de la zone de destination.
(P)ROCEED Rôle : exécuter un appel de sous-programme, une demande d'interruption, une instruction de répétition de chaînes ou une instruction de boucle. L'exécution s'arrête à l'instruction qui suit le retour du sous-programme ou de l'interruption ou à l'instruction qui suit la boucle ou la répétition de chaînes.
(Q)UIT Rôle : sortir de DEBUG. Syntaxe : Q Commentaires : à l'issue de la commande Q, le fichier en cours de traitement n'est pas sauvegardé. Il faut donc au préalable utiliser la commande WRITE. (R)EGISTRE Rôle : afficher ou modifier le contenu des registres ou des indicateurs. Syntaxe : R [<registre>] Commentaires : la commande R permet:
(S)EARCH Rôle : chercher, dans la plage spécifiée, les caractères précisés dans la liste. Syntaxe : S <plage> <liste> Commentaires : la comande affiche l'adresse de tous les caractères correpondant à la liste spécifiée s'ils existent. Le registre DS est pris comme segment par défaut.
(T)RACE Rôle : exécuter une ou plusieurs instructions et afficher le contenu des registres à l'issue de l'exécution. Syntaxe : T [<=adresse>] [<valeur>] Commentaires : l'exécution commence à l'adresse spécifiée par le paramètre <=adresse> . Di ce paramètre est omis, elle commence à l'adresse CS:IP. (U)NASSEMBLE Rôle : désassembler les instructions et afficher leurs adresses, leurs valeurs et leurs mnémoniques. Syntaxe : U [<adresse>] ou U [<plage>] Commentaires : la valeur de CS est prise comme segment par défaut. Si l'adresse n'est pas indiquée, le désassemblage commence à l'adresse qui suit la dernière instruction désassemblée par la commande U précédente ou à l'adresse 100H si c'est le permier désassemblage. (W)RITE Rôle : écrire sur le disque le fichier traité. Syntaxe : W [<adresse>] [<unité> <secteur> <secteur>] Commentaires : 128 secteurs maximum peuvent être écrits. La commande supporte deux syntaxes d'appels : | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
