Vous êtes sur la page 1sur 3

Exercice 3 :

Module : SYSTEMES A MICROPROCESSEURS On considère le programme du microprocesseur 6809 et l’état de la mémoire illustrés ci-dessous :
LICENCE EEA
Professeur : A. BA-RAZZOUK
Année universitaire : 2012 – 2013, Semestre : 5
ORG $8000 Adresse Contenu
$3000 00
RES EQU $3010 $3001 01
T R A V A U X D I R I G É S - SERIE N° : 3 LDB #$00 $3002 03
LDX #$3000 $3003 05
Exercice1 : LDA #$00 $3004 01
$3005 0F
Considérer les bouts de programme suivants du microprocesseur 6809. Remplir les cases ombrées : VERF CMPA #$0A $3006 02
BEQ FIN $3007 0A
ADDB ,X+ $3008 0C
LDA #$78 LDA #%10011101 INCA
ADDA #136 ADCA #74 $3009 08
BRA VERF
$300A 07
Avant exécution : Avant exécution : $300B 11
FIN STB RES
$300C 07
E F H I N Z V C SWI
00 CCR $300D 01
0 0 0 0 0 0 0 1 CCR $300E 09
Après exécution :
$300F 0B
Après exécution : $3010 00
CCR
E F H I N Z V C
Acc. A CCR a) Commentez chaque ligne de ce programme ;
b) Donner le contenu de la case $3010 en décimal et en hexadécimal après exécution du programme.
Acc. A
Exercice 4 :
Exercice 2 : Considérer le programme suivant du microprocesseur 6809 de MOTOROLA.
On donne l’état partiel du microprocesseur 6809 avant l’exécution du programme ci-dessous :
Programme Mémoire Mémoire
X= $1000 ; Y= $1000 ; S= $0000, A=$00 ; B= $00 ; DP= $00 ;
ORG $8000
Considérer le bout de programme suivant, Remplissez uniquement les cases mémoire pertinentes en donnant
leurs adresses et leurs contenus. Justifiez vos réponses. ENTREE EQU $3000
$3000 00 $_______
SORTIE EQU $4001
Programme Mémoire $3001 01 $_______
PARAM EQU 64
LDA $03 Mémoire Mémoire $3002 02 $_______
LDA #PARAM
STA ,-X $3003 03 $_______
$0000 00 LDY #ENTREE
LDY $0002 $_______
$0001 02 LDX #SORTIE
LDB #$0C $_______
$0002 31 ETIQ LDB ,Y+ $3000+PARAM-4 3C $_______
ANDA #15 $_______
$0003 FA INCB $3000+PARAM-3 3D $_______
LDA #10 $_______
$0004 A5 STB ,-X $3000+PARAM-2 3E $_______
STA A,Y $_______
$0005 73 DECA $3000+PARAM-1 3F $_______
STB ,Y++ $_______
$0006 BA BNE ETIQ
ADDA #%01110011 $_______
$0007 11 BRA *
LDY $0000 $_______
$0008 00
ADDB [$06,Y] a) Commenter chaque ligne de ce programme;
$0009 07 b) Quelle est la fonction réalisée par le programme. Justifier votre réponse ;
c) A quoi correspondent les variables ENTREE, SORTIE et PARAM ?
d) La mémoire contient des valeurs incrémentées à partir de $00 entre l’adresse $3000 et l’adresse
« $3000+PARAM ». Remplir les zones ombrées et spécifier à gauche de celles-ci leurs adresses respectives
en hexadécimal (calcul final).

TD – Systèmes à microprocesseurs Page 1/5 TD – Systèmes à microprocesseurs Page 2/5


Exercice 5 : Exercice 8 :
Le fichier ".S19" d’un programme du microprocesseur 6809 est montré ci-dessous :
On donne les états partiels suivants du microprocesseur 6809 : Adresse Contenu
S11980008E8050108E8060CE8070A682A0A2A7C28C804026F53F53 A= $00 Accumulateur A ; $0000 FF
S9030000FC $0001 FE
B= $FF Accumulateur B ; $0002 1A
Une partie de la mémoire se présente comme suit :
X= $0000 Index X; $0003 C5
$8040 2E $8050 1F $______ $0004 00
Y= $0000 Index Y.
$0005 4D
$8041 2C $8051 1E $______ Et on considère le code objet suivant : $0006 5A
$8042 2A $8052 1D $______ 8E 00 01 C6 20 A6 05 44 A7 06 5A D7 09 3F
$8043 28 $8053 1C $______ $______
a) Désassemblez le code à l’aide du jeu d’instructions fourni ;
$8044 26 $8054 1B $______ $______
b) Donner le contenu des registres A, B, X, et Y à la fin de l’exécution du $______
$8045 24 $8055 1A $______
programme ; $______
$8046 22 $8056 19 $______
$______
$8047 20 $8057 18 $______ c) On donne ci-dessous l’état de la mémoire avant l’exécution du programme.
$8048 1E $8058 17 $______ Remplir les cases mémoires affectées par le programme en donnant leur
$8049 1C $8059 16 $______ adresse (à gauche des cases grises) et leur contenu (cases grises).
$804A 1A $805A 15 $______
Exercice 9 :
$804B 18 $805B 14 $______
$804C 16 $805C 13 $______ Un programme en assembleur du microprocesseur 6809 après compilation, présente le fichier ".LST" suivant :
$804D 14 $805D 12 $______ C000 ORG $c000 L’état initial du microprocesseur est le suivant :
$804E 12 $805E 11 $______ C000 8B 49 ADDA #$49 Acc. D = $0082 ;
C002 3A ABX Index X = $0100 ;
$804F 10 $805F 10 $______ C003 5C INCB Index Y = $0000 ;
C004 C3 C1 00 ADDD #$c100
Pointeur de pile S = $0041 ;
a) Présenter le programme ci-dessus dans la mémoire ; C007 D0 13 SUBB $13
C009 F7 10 00 STB $1000 Registre d’état (CCR) :
b) Désassembler le code ci-dessous ;
C00C B0 10 00 SUBA $1000 E F H I N Z V C
c) Donner l’état de la mémoire (remplir les zones ombrées) après l’exécution du programme (spécifier pour les
cases mémoires affectées par le programme les adresses et les contenus). 1 1 0 1 0 1 0 1 CCR

Exercice 6 : Etat de la mémoire :

Un programme du microprocesseur 6809 est stocké dans la zone Adresse Contenu Adresse Contenu Adresse Contenu Adresse Contenu Adresse Contenu
0000 52 0010 22 C100 FF 0110 33
mémoire $C000-$C006. $0000 00
0001 88 0011 44 C101 00 0111 44
$0001 01
a) Désassemblez le code correspondant à ce programme. Commentez 0002 63 0012 52 C102 88 0112 55
$0002 3F
chaque ligne du programme assembleur obtenu. $0003 CE
0003 33 0013 88 C103 63 0113 B6
0004 44 0014 63 C104 77 0114 A1
b) Après exécution du programme stocké dans la zone mémoire $0004 27
0005 55 0015 77 C105 74 0115 A0
$C000-$C006, indiquer le contenu de l’accumulateur A, le nom et le $0005 DF
0006 66 0016 74 C106 FF 0116 09
contenu de l’autre registre utilisé dans le programme et l’état des bits • •
0007 77 0017 33 C107 83 0117 00
« C » et « Z ». • •
0008 F3 C108 44
$C000 9E
0009 56 C109 52
Accumulateur A $C001 00
000A E3 C10A 88
Registre ………. $C002 A6
000B DB C10B 63
Bit « C » $C003 02
000C A1 C10C 52
Bit « Z » $C004 4A
000D A0 C10D 88
$C005 48
000E 09 C10E 63
$C006 3F
000F 00 C10F 00
Exercice 7 : En considérant l’état initial du 6809 et l’état de la mémoire présenté ci-dessous, décrire ce que chaque
Désassembler le code suivant du microprocesseur 6809. Commentez chaque ligne du programme obtenu et instruction réalise en indiquant le mode d’adressage, l’adresse effective de la donnée utilisée par l’instruction,
expliquez la fonction réalisée. le résultat de l’instruction et l’état des registres D, X, Y, S et CCR après l’exécution de chaque ligne.
Rappels : 1) Dans la convention des nombres signés, le bit de poids le plus fort (b7) constitue le bit de signe ;
8E 10 00 10 8E 20 00 A6 84 E6 A4 3D FD 30 00 3F 2) Les nombres négatifs (-X) sont obtenus dans cette convention par le calcul du complément à 2 (c'est-à-dire
complément à un + 1) de la valeur absolue X.
TD – Systèmes à microprocesseurs Page 3/5 TD – Systèmes à microprocesseurs Page 4/5
Exercice 10 :
Un programme du microprocesseur 6809 compilé se présente dans la mémoire comme suit :
Adresse Contenu Adresse Contenu
8000 4F 8010 21
8001 5F 8011 00
8002 8E 8012 10
8003 21 8013 8E
8004 00 8014 22
8005 ED 8015 02
8006 81 8016 EC
8007 C3 8017 81
8008 00 8018 ED
8009 02 8019 A3
800A 8C 801A 8C
800B 21 801B 21
800C 10 801C 10
800D 26 801D 26
800E F6 801E F7
800F 8E 801F 3F

1) Désassembler le code de ce programme à l’aide du jeu d’instructions fourni. Commentez chaque ligne du
programme assembleur obtenu ;
2) Quelle est la fonction réalisée par le programme ?
3) Donner l’état de la mémoire affectée par l’exécution de ce programme (adresse et contenu) sans reprendre
les codes correspondants au programme.

Adresse Contenu Adresse Contenu Adresse Contenu

Rappels : 1) Dans la convention des nombres signés, le bit de poids le plus fort (b7) constitue le bit de signe ;
2) Dans les instructions de branchement, l’octet qui suit l’instruction de branchement constitue la valeur de déplacement
relatif qui est un nombre signé. Le déplacement relatif varie dans la plage $80 (-128) à $7F (+127) s’il est codé sur 8 bits
et dans la plage $8000 (-32768) à $7FFF (+32767) s’il est codé sur 16 bits ;
3) Pour calculer l’adresse où doit brancher le programme, l’offset est ajouté à l’adresse après l’exécution de l’instruction de
branchement (après l’adresse de l’instruction de branchement et celle de son offset).

TD – Systèmes à microprocesseurs Page 5/5