La lecture en ligne est gratuite
Télécharger

Vous aimerez aussi

Cours html youssef

de thekiller

5 merise mct

de thekiller

4 merise mcd

de thekiller

suivant
Systèmes à Microprocesseurs (6GEN645) ProfesseurBeguenane: Rachid Assistant :Eric Larouche (elarouch@uqac.ca) TP N° 2 PROGRAMMATION AVEC TASM/TLINK et DEBUG I. INTRODUCTION Les programmes de BorlandTurbo AssembleretTurbo Linksont des utilitaires qui permettent d’assembler (avec la commandeTASMnom_fichier.asm) et lier (avec la commandeTLINK nom_fichier.obj) un fichier écrit en langage assembleur (nom_fichier.asm) pour le convertir en un fichier exécutable (nom_fichier.exe) écrit dans le langage machine binaire. Il est possible d’utiliser l'utilitaire DEBUG pour déboguer le programme assembleur se trouvant dans le format exécutable (nom_fichier.exeutiliser DEBUG, sous DOS, on écrit:). PourDEBUG nom_fichier.exeEnsuite, toutes les commandes vues durant la séance du TP1 peuvent être utilisées de la même manière. Ilest à noter qu’un équivalent de DEBUG de Borland existe. Il s’agit deTurbo Debugger. Celui-ci sera utilisé durant la prochaine séance de TP. 1.OBJECTIFS wCoder un programme en langage assembleur. wCréer un fichier exécutable en assemblant avec TASM et liant avec TLINK le code. wUtiliser DEBUG avec le fichier exécutable généré.
1
i. MATÉRIEL UTILISÉ wMicro-ordinateur IBM et compatible muni d’unµP80x86. Assembleur TASM et éditeur de liens TLINK w wProgramme DEBUG ii. ACTIVITÉS Activité 1 Ecrire et exécuter un programme assembleur Partie 1: En utilisant un éditeur de texte de votre choix, écrivez un programme qui permet d’additionner dix nombres quelconques (entiers non-signés d'un octet); faites toutefois attention au dépassement! Pour cela, utiliser une boucle et le mode d’adressage registre indirect.Dans le programme, vous devrez inclure un segment de code et un segment de données. wAssembler et lier votre programme en utilisant les commandes TASM et TLINK simplement sans aucune option. Vérifier que les fichiers .OBJ et .EXE sont générés. wSous DOS, taper TASM /? et TLINK /? pour avoir une idée générale de toutes les options disponibles. wAssembler à nouveau en incluant l’option (/l ou /la) pour TASM qui permet d'obtenir un listing d'assemblage. Visualiserle fichier .LST et observer son contenu. wLier à nouveau en incluant l’option (/m ou /s) pour TLINK qui permet d'obtenir une carte détaillée de l'occupation mémoire.Visualiser le fichier .MAP et observer son contenu. Fournir ces fichiers avec votre rapport. Noteles options (/la et /zi) pour TASM et (/s et /v) pour TLINK.: Dorénavant, inclure toujours Partie 2: Avec le programme DEBUG, charger le fichier exécutable généré durant la partie précédente. Désassembler le programme pour voir les valeurs assignées par le DOS au registre CS et l'offset d'origine de votre code. Où se trouve en mémoire votre segment de données? Vérifier le placement des données à sommer et en indiquer la plage d'adresse. Partie 3:
2
Tracer le programme et analyser les changements des registres généraux, index, base, pointeurs et flag, instruction par instruction jusqu'à la fin du programme. Vérifier l’exactitude de votre somme et son emplacement mémoire. Activité 2 Additionner des mots au lieu des octets Reprendre l’activité 1, mais cette fois-ci en additionnant 4 mots de 16-bits: 1222H, 1333H, 1191H, et 32F1H. Sauvegarder le programme pour l’utiliser ultérieurement. Indices: Pour des octets:Pour des mots: ADD_BCL: ADDAL, [SI]ADD_BCL: ADDAX, [SI] INC SIADD SI, 2  DECCX DECCX  JNZADD_BCL JNZADD_BCL Activité 3 Déplacer un bloc de données un octet/mot à la fois Ecrire deux programmes qui permettent de déplacer un bloc de données un octet à la fois, ensuite, un mot à la fois. Utiliser par exemple les données de l’activité 1.Prouver avec DEBUG la validité de vos programmes. Activité 4 Les emplacements mémoire des données Partie 1:Décrire ce que fait ce programme : PAGE 60,132 TITLE prog.asm  .MODELSMALL  .STACK .DATA DATA_IN DW234Dh, 1DE6h, 3BC7h, 566Ah  ORG10H SUM DW?  .CODE MAIN PROCFAR  MOVAX, @DATA  MOVDS, AX  MOVCX, 4  MOVDI, OFFSET DATA_IN  MOVBX, 0 ADD_LP: ADDBX, [DI]  INCDI  INCDI  DECCX
3
 JNZADD_LP  MOVSI, OFFSET SUM  MOV[SI], BX  MOVAX, 4C00h  INT21h MAIN ENDP  ENDMAIN Utiliser Turbo Assembleur et Turbo Link pour générer le fichier exécutable de ce programme. En utilisant DEBUG, vérifier la valeur de DS assignée par le DOS de votre PC. Donner les emplacements mémoire des données du programme. Partie 2:Placer ce segment de données dans le programme : .DATA ORG 10h DATA1 DB'91234567'  ORG20h DATA2 DD91234567H  ORG30h DATA3 DW1001000100100011B, 4567H  ORG40h DATA4 DB4 DUP (12H) Assembler et LINKer le programme et observer avec DEBUG comment ces données sont placées dans la mémoire. Partie 3:Faire la même chose que la partie 2 avec le segment de données ci-dessous, seulement anticiper les résultats des placements mémoire avant d’exécuter le programme et utiliser DEBUG. .DATA  ORG10h DATA1 DB'UQAC, 555 BLD. DE L`UNIVERSITE, CHICOUTIMI' DATA2 DB'G7H 2B1, QUEBEC,' DATA3 DB'1289' DATA4 DW1289H DATA5 DW1289  ORG80h DATA6 DD91234567 DATA7 DD91234567H
4