Vous êtes sur la page 1sur 10

éà NB 

: Programme Sous DEBUG


1 - L’utilisation des Identificateurs et Label est

NON AUTORISEE

2 - Les Nombres manipulés sont écrits en

HEXADECIMAL

--------------------------------------------------------------------------------------------------------------------------------------

TP 1 (Entrée des données en Mémoire)

Ecrire sous Debug à partir de l’offset 0500 les

suites des pseudo-instructions suivantes

permettant de stocker en Mémoire des Données

DB 4

DB 1234

DB ‘HELLO’

DB PAPA

DW 06

DW BABA

DW 007

DB BABA

DB 0008

DB ‘HELLO PAPA,BABA’

Valider pour sortir

1-Corriger s’il y a erreur  ? Expliquer ?

2-Faire l’affichage des contenus des mémoires

à partir de l’offset 0500 . Expliquer ?


3-Desassembler les contenus de ces

memoires à partir de l’offset 0500 ?

4-Qu’est ce qu’on remarque  ? Expliquer ?

TP 2 (Transfert des Données en Registre)

Ecrire sous Debug le programme suivant

à l’Offset 1000 :

MOV AX,FFFF

MOV AH,5

MOV BH,6

MOV AL,BH

MOV CH,DADA

-Valider pour sortir

1-Afficher l’etat initial des Registres . Expliquer

2-Executer pas à pas .

Remarques sur les contenus des Registres

pour chaque execution ? Expliquer  ?

2-Modifier manuellement les Registres

AX par BABA

BH par FA et AH par DA

3-Verifier les nouveaux contenus des registres


TP3(Contrôle de FLAG)

Ecrire sous Debug le programme en

donnant comme Adresse d’ Offset

d’implantation 1500 :

MOV AX , 33FF

MOV BX , 66FF

ADD AX , BX

MOV AX , 0001

DEC AX

INC AX

SUB AX , 0002

MOV AH , 70

MOV BH , 50

ADD AH , BH

JMP 1500

1-Vérifier le contenu des Registres utilisés  ?

2- Désassembler le programme

3-Initialiser le Registre IP à 1500

Vérifier les contenus des Registres

4-Exécuter pas à pas le programme

(instruction par instruction)

Identifier le changement qui intervient

dans le registre FLAG . POUQUOI  ?

5-Changer la ligne ADD AX , BX

par ADD BX , AX .
Désassembler. Exécuter à partir du début

TP 4 (Mode d’Adressage)

1-Entrer des données suivantes en Mémoire  :

55 à l’Adresse d’Offset 0100

6677 à l’Adresse d’Offset 0200

2- Ecrire le programme suivant à l’Adresse


d’Offset 2000 :

MOV BX , 0100

MOV AX , [BX]

MOV S I , 100

MOV CX , [BX][SI]

3-Afficher les contenus des Registres initiaux

4- Mettre à 0 les Registres AX , BX et CX

Si NON NULS

5-Verifier que ce programme est bien

Implanté en Mémoire ?

6-Initialiser le Registre IP à 2000

7-Executer pas à pas .

Expliquer les resultats  obtenus ?


TP 5 ( PILE LIFO )

1)-Ecrire sous Debug , à partir de l’Adresse


d’Offset 3000 , le programme suivant :

MOV AX , 0011

MOV BX , 0022

PUSH AX

PUSH BX

MOV AX , 0033

MOV BX , 0044

POP AX

POP BX

2)-Exécutez pas à pas le programme

3)-Remarquez les Contenus des Registres :

Ax , BX , CS , SS , SP , IP  ?

4)-Changez l’ordre d’exécution de POP en


écrivant :

avant POP BX

et après POP AX

5)-Exécuter pas à pas le programme à partir de


l’Offset 3000

6)-Que remarquez – vous ? Conclure


7)- Expliquez le fonctionnement des PILES

TP 6 ( Transfert des Données

Chaines de Caractères

en Mémoire )

1)-Entrer en mémoire les 2 noms ci-après :

à l’Adresse d’Offset 0100 : RAKOTO

à l’Adresse d’Offset 0200 : RAZAFY

2)-Ecrire le programme suivant à partir de l’Adresse


d’Offset 4000

MOV SI , 0100

MOV DI , 0200

MOV AL , [SI]

MOV AH , [DI]

CMP AH , AL

MOV AL , [SI+1]

MOV AH , [DI+1]

CMP AH , AL

MOV AL , [SI+2]

MOV AH , [DI+2]

CMP AH , AL
3)-Exécuter pas à pas et expliquer les états du
Registre FLAG et du Registre AX

4)-Ajouter à partir de l’Offset 401E un programme


permettant de transférer les 3 premières lettres de
la chaine des caractères RAZAFY qui se trouvent en
mémoire à partir de l’Adresse d’Offset 0200 vers
l’Adresse Mémoire d’Offset 0300 . VERIFIER les
resultats obtenus en Mémoire ?

( Proposition de Solution

MOV SI , 0200

MOV DI , 0300

MOV AL , [SI]

MOV [DI] , AL

MOV AL , [SI+1]

MOV [DI+1] , AL

MOV AL , [SI+2]

MOV [DI+2] , AL

Remarques

SI : Source

DI : Destination

5)- Reecrire le programme en utilisant les


Instructions REP et MOVSB , en transferant dans
l’Adresse Mémoire d’Offset 500 les 3 premiers
caractères de RAZAFY

( Proposition de SOLUTION :

PUSH DS 

;(met la valeur de DS sur la Pile )

POP ES

;(récupère cette valeur dans ES)

; (Pile utilisée, Nécessaire pour effectuer


des opérations de transfert non prévues)

MOV SI,200

MOV DI,500

CLD

; ( DF=0 , Incrémentation SI et DI à prévoir )

MOV CX,3

; (les 3 Caractères à transférer)

REP MOVSB

Verifier le contenu de Memoire d’Offset 500 


TP 7 : INTRRUPTION

EXO 1

Entrer en mémoire à l’Offset 200 la phrase suivante

‘ Salama , Manakory aby$ ‘

Ecrire le Programme suivant à l’Offset 300

MOV AH , 09

MOV DX , 200

INT 21

INT 20

NOP

Executer et Expliquer

EXO 2

Ecrire le Proigramme suivant à l’Offset 500

MOV AH , 00

INT 16
INT 20

NOP

ERxecuter et Expliquer

Vous aimerez peut-être aussi