Vous êtes sur la page 1sur 15

UNIVERSITE SIDI MOHAMED BEN ABDELLAH

ECOLE NATIONALE DES SCIIENCES APPLIQUES

COMPTE RENDU d’informatique


Industrielle

Réalisé par : Encadré par :

- Hamdi Hajar
- Mrabti Rhofrane
- Kanoun Youness - Pr EL BDOURI

Filière :
- G.Info 1

Année Universitaire: 2016/2017


TP : FAMILIARISATION ET PRISE EN MAIN
DU KIT MC 09-B

Présentation:
But du TP :
Ce TP consiste en une prise en main du microsystème MC 09-B et du jeu d’instruction du microprocesseur
MOTOROLA 6809.
Ainsi, ce TP a traité les points suivants :

 présentation du kit MC 09-B.


 procédure d’écriture du code et d’exécution sur le kit MC 09-B.
 Quelques exemples simples d’application.

Spécification du Kit MC 09-B :


Durant ce TP, on a eu l’occasion du travailler sur le kit MC 09-B.
Le système MC 09-B fait suite au système MC 09 développé autour du microprocesseur 6809 de MOTOROLA. Il
reprend dans son architecture les principales caractéristiques (matériel et logiciel) qui ont fait le succès du MC 09.
Cette carte est équipée de :

- UN microprocesseur 6809.
- une mémoire EPROM moniteur de 8Ko.
- Deux supports pour mémoire EPROM de 8ko.
- Une mémoire RAM de 16Ko.
- Une interface parallèle de PIA 6821.
- Une interface multifonction VIA 6522.
- Une interface série ACIA 6850.
- Une interface TIMER 6840.
- Une interface parallèle système PIA 6821 (gestion clavier et afficheurs)
- Un clavier de 32 touches (hexa + fonctions).
- Un afficheur de 6 digits à 7 segments.
- Une ligne série RS232.
- Une prise pour liaison minitel.
- Une prise pour liaison cassette.
- Deux connecteurs de 50points chacun.

 Il ne Faut pas Oublier que La carte nécessite une alimentation externe de + 5 volts, 2 Ampères.
Pour cela, on a relié le +5V de l’alimentation à l’entrée +5V du MC 09-B, ensuite, on a relié la masse de
l’alimentation à l’entré 0V du MC 09-B.

MANIPULATION :
Utilisation du clavier :
Le clavier du Kit-MC 09-B est constitué de 30 touches.
16 touches (0 à F) constituent le clavier hexadécimal pour la saisie d’un programme à travers son code machine.
14 touches constituent le clavier de fonctions.

RST : Réinitialisation du système


MEM : Visualisation du contenu de la mémoire
INC : Incrémenter champs d’adresse d’une unité
DEC : Décrémenter les champs d’adresse d’une unité
OFS : Calcul d’offset
INS : Touche d’insertion
EXC : Exécution du programme
NMI : Envoi d’une interruption au processeur
ECR : Ecriture
BRK : Insertion de points d’arrêt
LEC : Lecture
PRG : Programme
REG : Exploration des contenues des registres internes du processeur
FIN : Fin d’une tache demandée au Kit MC 09-B

. Après avoir branché l’alimentation de la carte. On effectue un RESET.


Ensuite vient l’Examen des registres :
Pour visualiser le contenu d’un registre On tape dans le clavier REG puis INC ou DEC.

Registre Contenu
CC BF
U EA15
Y CC60
X 0A4A
A OA
B A7
DP F5
PC 8C17
S 3F0B

Examen de la mémoire:
On examine la mémoire en vérifiant le contenu de l’adresse $8000 après qu’on a tapé la touche MEM, on écrit dans

cette adresse la donnée $11, on incrémente deux fois l’adresse $8000 et on stocke $48 à l’adresse $8002. On fait FIN

puis RESET.

Soit Au Clavier : MEM,8,0,0,0,1,1,INC,INC,4,8,FIN,RESET.

- La valeur de $11 en binaire et de $48 en binaire :

$11= (0001 0001)2.

$48= (0100 1000)2.

-La valeur de 163, 210, 212-1 en hexadécimal :

163 = A3.

210 = D2.

212 = D3.

- 1 = FF.

212-1= D3+FF.

-La valeur des nombres $A000,$0FFF en décimal :

$A000 = 40960.

$0FFF = 4095.

Afin d’écrire une donnée à une adresse mémoire, on tape MEM puis on entre l’adresse où on veut écrire la donnée,

soit par exemple $0010 puis on entre la donnée, dans le TP on a entré la donnée $FA.

-On INCREMENTE le champ d’adresse d’une unité à l’aide de la touche INC, on voit alors l’adresse $0011 et le

contenu aléatoire de son afficheur $FF.

-On DECREMENTE le champ d’adresse 4 fois à l’aide de la touche DEC, on voit alors l’adresse $000D et le contenu

aléatoire de son afficheur $80.


Saisie et exécution d’un programme sur le KIT MC 09-B

Ecriture et exécution du programme sur le MP 6809 :


Afin d’écrire un programme sur le Kit, il est indispensable de le transformer en son code machine, soit donc à écrire le
programme :

Code Machine Langage Assembleur


0000 86 00 LDA #$00
0002 1F 8B TFR A, DP
0004 9B 21 ADDA $31
0006 97 22 STA $32
0008 3F SWI

Pour implémenter ce programme via le kit MC-B, on suit les étapes suivantes:
- On initialise la carte en appuyant sur la touche « RST » du clavier.
- Après l’initialisation, on verra s’afficher « M C 0 9 ».
- On appuie sur la touche « MEM » du clavier, pour accéder à la mémoire.

Le système nous demande la première adresse du programme :


On appuie 4 fois sur la touche 0

AFFICHEUR
0 0 0 0 F F

Après avoir fournie l’adresse, on introduit le code correspondant à l’instruction « LDA » : 86

AFFICHEUR
0 0 0 0 8 6
On incrémente l’adresse, en appuyant sur la touche « INC »

AFFICHEUR
0 0 0 1 8 8

On introduit la valeur qu’on veut stocker dans l’accumulateur A : 00

AFFICHEUR
0 0 0 1 0 0

On incrémente l’adresse et on introduit le code correspondant à l’instruction « TFR » : 1F

AFFICHEUR
0 0 0 2 1 F

On incrémente l’adresse et on introduit la valeur 8B :


AFFICHEUR
0 0 0 3 8 B

On incrémente l’adresse et on introduit la valeur 9B :

AFFICHEUR
0 0 0 4 9 B

On incrémente l’adresse et on introduit la valeur 21 :

AFFICHEUR
0 0 0 5 2 1

On incrémente l’adresse et on introduit la valeur 97 :

AFFICHEUR
0 0 0 6 9 7

On incrémente l’adresse et on introduit la valeur 22 :

AFFICHEUR
0 0 0 7 2 2

On incrémente l’adresse et on introduit la valeur 3F :

AFFICHEUR
0 0 0 8 3 F
A la fin de la saisie du code, on appuie sur la touche FIN du clavier puis, sur la touche EXC pour exécuter le code
machine.

- Après l’exécution du programme sur le kit du MC 09-B on remarque qu’il contient certaines erreurs:

1° ADDA $31= On ne doit pas additionner le contenu de l’accumulateur A avec le contenu de $31 mais avec celui de
$21. (ADDA $21)
2° STA $32 = On ne doit pas stocker le contenu de $32 dans l’accumulateur A mais plutôt celui de $22. (STA $22)
3° Dans l’adresse $0004 il ne faut pas taper 96 mais 9B : « 0004 9B 21 «
4° Dans l’adresse $0006 il ne faut pas taper 96 mais 97 : « 0006 97 »

Affichage du contenu des cases mémoires :

$20= #$FF
$21= #$FD
$22= #$FC

Conclusion : On remarque que le registre DP contient à cette instant la valeur $5F-$40 ce qui est très clair si l’on voit
le programme exécuter.

L’insertion de la ligne LDA $20 à l’adresse 0004:


Maintenant, on veut ajouter l’instruction LDA $20 a notre programme, c’est le rôle de la touche INS, on appui sur et
on verra alors s’afficher d P « Demande de l’adresse du début du programme «. Il faut donc entrer l’adresse de début
du programme qui est pour nous $0000. On tape EXC, on appui sur et on verra alors s’afficher F P
« Demande de l’adresse de fin de programme «. Puis on entre l’adresse de fin du programme qui est $0008.
Ensuite vient l’affichage d’A I « Demande de l’adresse d’insertion » .On choisit par exemple $0004 et on tape la
touche EXC, on verra alors s’afficher nb « c’est le nombre d’octets sur lesquels s’écrit la nouvelle instruction ».
On indique que c’est deux, On voit que la case $0004 contient maintenant le code 12 correspondant à l’instruction
NOP, il nous suffit donc de changer ce contenu mémoire par ce qu’on veut insérer, c’est-à-dire le code machine de
LDA $20.
A la fin on aura : 0004 96
0005 20

La Fonction de ce programme:

Ce programme nous a permis d’insérer une ligne de code dans une adresse bien déterminée.

Affichage du contenu des cases mémoires :

$20= #$21
$21= #$
$22= #$50

Conclusion : On peut conclure que l’instruction LDA $20 est prise en considération de telle façon à avoir dans
l’adresse $22 la somme des contenus des deux cases $20 et $21.

Remplacement d’une instruction par une autre :

On veut remplacer l’instruction LDA $00 par l’instruction CLRA .


Pour cela, on va suivre un peu près les mêmes étapes précédentes avec la modification du nb d’octet qu’on
va utiliser et le code d’instruction de CLRA.

On appuie sur la touche INS qui nous permet d’insérer une ligne de code dans une adresse précise.

AFFICHEUR
D P - - - -

Le système nous demande d’insérer l’adresse du début de programme


On introduit la valeur 0000 qui présente l’adresse du début de programme puis, on appuie sur la touche EXC
pour valider, On verra alors s’afficher F P

AFFICHEUR
0 0 0 0 F P

Le système nous demande d’insérer l’adresse de fin de programme


On introduit la valeur 0008 qui présente l’adresse de fin de programme puis, on appuie sur la touche EXC,
on verra alors s’afficher : AI

AFFICHEUR
0 0 0 8 A I

Apres avoir, introduit l’adresse du début de programme et celle de fin de programme, le système nous demande
d’introduire l’adresse où nous voulons ajouter l’instruction.
On introduit la valeur 0000 qui présente l’adresse d’insertion puis, on appuie sur la touche EXC, on verra
alors s’afficher : nb

AFFICHEUR
0 0 0 0 N b

Ensuite, on doit spécifier le nombre d’octet qu’on va utiliser :


On tape 01 qui est le nombre d’octets à insérer puis, on appuie sur la touche EXC :

AFFICHEUR
I N S 0 1

On appuie sur la touche EXC, on aura alors :

AFFICHEUR
0 0 0 0 1 2

Le nombre 12 correspond au code machine de l’instruction NOP (pas d’opération). On tapera alors 4F qui
correspond au code de CLRA.

Utilisation du mode pas à pas :

Il est rare, même très rare qu’un programme « tourne » dès le premier essai. Alors Pour bien détecter les erreurs,
on utilise le mode pas à pas qui nous permet d’exécuter les instructions par étapes selon le pas qu’on fixe, c’est ici
que vient le rôle de la touche BRK.
On va utiliser le programme précédent pour vérifier le fonctionnement de cette instruction :

BRK bp
EXC 1 (On fixe un pas de 1)
« Demande de l’adresse à laquelle on veut mettre le 1 er point d’arrêt «
0000
FIN
MC09
« On vient de mettre un premier point d’arrêt à l’adresse 0000 »
EXC
0000 bp
INC
INC
0002 bp

Afin d’arrêter l’exécution en mode pas à pas, il faut taper FIN avant de faire un RST.
On va refaire les mêmes étapes mais pour un point d’arrêt différent, on choisira l’adresse $0006.

Utilisation du logiciel OPTIMA :


Edition d’un programme :

OPTIMA 09 est un logiciel à menu déroulant et fenêtre de dialogue spécialement développé pour piloter le MC 09 B.
La souplesse d’utilisation d’OPTIMA 09 assure une remarquable facilité d’utilisation et une maîtrise rapide du
système.
Editeur de TEXTE :

 une fenêtre de dialogue permet de sélectionner un fichier à éditer dans


n’importe quel répertoire du disque.
 une aide en ligne permet de visualiser à tout moment les différentes
instructions du microprocesseur : description générale, syntaxe, modes
d’adressage...
 L’éditeur se présente sous la forme de fenêtres de saisie de texte
 1 ligne d’information sur le fichier en édition
 1 ligne d’information sur les fonctions disponibles
 1 ligne de menu pour accéder aux différentes fonctions (Db, As)
Assembleur :

 l’assembleur à format libre offre un large choix de directives d’assemblages :


cycle machine, séparation des codes et données, assemblage conditionnel,
alignement du compteur ordinal...
 une fenêtre donne la liste des éventuelles erreurs d’assemblage lors de la mise
au point de programmes, avec la possibilité de revenir à l’éditeur, le curseur
pointant la première erreur d’assemblage.
 OPTIMA 09 intègre un assembleur symbolique à deux passes. L’assembleur
génère :
 1 fichier objet au format S1/S9 de Motorola
 1 fichier de symboles pour le debugger
Debugger:

 OPTIMA permet la sauvegarde de tout ou partie de la mémoire du système


sur disque PC et également l’assemblage ligne à ligne.
 Le debugger OPTIMA permet de télécharger un fichier objet dans la RAM du
système et d’exécuter toutes les fonctions du débogage.
 exécution en pas à pas ou par bloc de sous programmes, points
d’arrêts, examen et modification de registres ou mémoires...

MANIPULATION :

L’addition du contenu de deux cases mémoires.

ORG $0000

CLR $0053

LDA $0050

ADDA $0051

STA $0052

BCS RETENUE

BCC PASDERETENUE

RETENUE INC $0053

PASDERETENUE SWI

END

Utilisation de l’adressage indexé

1ère méthode
ORG $00
LDX #$0030
LDY #$0040
LDB #$06
refaire LDA, X+
ADDA, Y+
STA $F, Y
DEC B
BNE refaire
SWI
END

2éme méthode

ORG $0000
CLR $56
LDB #$06
LDX #$30
LDY #$40
LDU #$50
refaire LDA, X+
ADC A, Y+
STD, U+
DEC B
BNE refaire
ROL $56
SWI

Transfert d’une zone mémoire vers une autre en inversant les octets

ORG $0000
LDX #$0120
LDU #$017F
LDB #$16
Boucle LDA X+
STA -U
DECB
BNE Boucle
SWI
END

Le code en complément à deux

On considère le programme suivant :

code machine assembleur

0000 86 17 LDA #$17

0002 8B 12 ADDA #$12

0004 3F SWI
b) L’instruction SWI a pour action de mettre fin au programme pour qu’il s’arrête de

s’exécuter dans une boucle infinie.

c)

12 17 29
127 75 19C
-120 13 FEF3 (sur 4 bits)
-57 -84 FF25 -
34 -80 FFE4
-
-127 126 FFFF
-127 -127 FE5A
-
44 35 79
L’indicateur CC utile dans ce cas est le bit de retenue puisqu’il nous indique qu’il
-
y a une retenue après les sommes effectuées.

- Comparateur de case

-
- multiplication 8bits