Informatique Industrielle : TP 1 Utilisation de l’Outil Debug
Télécharger PDFInitiation à la Programmation en Assembleur avec Debug
I. But du TP
L'objectif de ce TP est de donner un aperçu succinct du langage assembleur des microprocesseurs de la famille 8086. Ce langage est dit de « bas niveau » car il est étroitement lié à l'architecture du microprocesseur.
II. Comment exécuter le Debug sous Windows
Le Debug du 8086, bien que compatible avec Windows XP, Vista, serveur 2003 et 2000, pose des problèmes sur Windows 7 et 8. Pour contourner ces difficultés, utilisez DOSBox, un émulateur open source.
III. Initiation à la Programmation en Assembleur avec Debug
Pour commencer, affichez le contenu des registres en tapant la commande -r (et appuyez sur Entrée). Vous obtiendrez les registres AX, BX, CX, DX, SI, DI, BP, ainsi que les segments DS, ES, SS et CS, avec l'IP et les drapeaux.
Modification des Registres
Pour modifier le contenu d'un registre, par exemple AX, tapez -r ax. Le contenu actuel s'affiche avec deux points, permettant de le remplacer par une valeur hexadécimale. Par exemple, tapez 1234 pour obtenir AX = 1234H.
Travail avec le Data Segment (DS)
Utilisez la commande d [adresse] pour extraire le contenu du DS à partir d'une adresse donnée. Par exemple, d 073F:0000 affiche les octets du segment DS à l'offset 0000. Les valeurs hexadécimales sont converties en caractères ASCII, avec des points pour les codes non valides.
Modification des Données en Mémoire
Pour modifier un octet en mémoire, utilisez la commande e [adresse]. Par exemple, e 073F:0000 permet de remplacer les octets à partir de l'offset 0. Tapez la nouvelle valeur hexadécimale après le point.
Utilisation des Instructions
Les instructions sont enregistrées dans le Code Segment (CS). Toujours vérifier l'adresse du Instruction Pointer (IP) avant d'écrire une nouvelle instruction pour ne pas écraser les anciennes.
Exemple avec la Commande MOV
Pour écrire le contenu du registre AX dans l'adresse 0 du DS, utilisez mov [0], ax. Le contenu de AX (16 bits) sera divisé en deux octets (LSB et MSB) et enregistré dans le DS.
Exécution et Vérification des Instructions
Utilisez la commande t pour exécuter une instruction en pas à pas. Pour afficher le contenu du DS après modification, utilisez d [adresse].
Commande ADD et SUB
La commande add permet d'additionner deux opérandes, tandis que sub effectue une soustraction. Le résultat est enregistré dans le registre de destination.
Exemple avec une Chaîne de Caractères
Pour écrire une chaîne de caractères dans le DS, commencez par l'offset 100 avec la commande a 100. Entourez la chaîne de deux guillemets : "Hello World, Merci Beaucoup ? ?".
FAQ
1. Pourquoi utiliser DOSBox pour exécuter Debug sous Windows 7 ou 8 ?
DOSBox est un émulateur qui permet d'exécuter des logiciels DOS sous des systèmes modernes comme Windows 7 ou 8, en contournant les problèmes de compatibilité.
2. Comment convertir une valeur hexadécimale en ASCII dans Debug ?
Debug affiche automatiquement une conversion ASCII à droite des valeurs hexadécimales. Les points représentent des codes ASCII non valides.
3. Que signifie LSB et MSB dans le contexte des registres ?
LSB (Least Significant Byte) désigne l'octet à poids faible, tandis que MSB (Most Significant Byte) désigne l'octet à poids fort dans une valeur enregistrée sur 16 bits.