Documente Academic
Documente Profesional
Documente Cultură
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).
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.
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).