TP Informatique Industrielle
TP Informatique Industrielle
TP Informatique Industrielle
Il existe deux versions de ce processeur, le 6809 et le 6809E. Leur brochage diffère ainsi que
leurs signaux mais leur jeu d'instruction est identique.
Le 6809 de Motorola fut au départ produit en versions 1 MHz et 2 MHz, mais des versions plus
rapides furent produites par la suite.
L'adressage inhérent
L'adressage immédiat
L'adressage direct
L'adressage étendu
L'adressage étendu indirect
L'adressage relatif court
L'adressage relatif long
L'adressage indexé
L'adressage indexé indirect
1
Manipulation :
Exercice 1 :
LDD #$05 charge la valeur $05 dans l’accumulateur D immédiatement or que LDD $05 charge
l’accumulateur D avec le contenu de l’adresse $05
Exercice 2 :
Le programme :
LDA #$06
LDX #$0030
LDU #$3800
PSHU A,X
SWI
2
Apres l’exécution de l’instruction PSHU , on remarque dans la case mémoire d’adresse 37FD , la valeur
38 00 chargé en premier suivis de la valeur 00 30 et en fin 06 ; on remarque que l’instruction empile les
valeurs stocker dans les registres dans un ordre précis !
ORDRE D’EMPILEMENT
Exercice 3 :
---------------------
(1)11010000
Le programme associé est :
LDA #$F0
ADDA #$E0
END
Y’a-t-il un débordement ?
3
Exercice 4 :
Additionner le contenu de la mémoire 0030 à celle de la mémoire 0031 et mettre le résultat dans la
mémoire 0032 :
Le programme associé :
ORG $0000
LDA $0030
ADDA $0031
STA $0032
END
On doit donner d’abord des valeurs initiale au case mémoire $0030 et $0031 On a choisit
respectivement 05 et 05
Et après l’exécution de la dernière instruction , on voit bien que la nouvelle valeur de la case mémoire
$0032 est 0A
4
Exercice 5 :
L’inconvénient dans le programme précédent c’est qu’il ne tient pas en compte de la retenue qui
peut être générer par l’addition des 2 cases mémoires 0030 et 0031 , donc pour corriger ce problème ,
en aura besoin de réserver une case mémoire additionnelle pour la retenue (0033)
CLRB
LDA $0030
ADDA $0031
ADCB #$00
STA $0032
STB $0033
END
Pour un bon test de ce programme , on doit initialiser les cases mémoires 0030 et 0031 avec des valeurs
qui produirons , a leur addition , une retenue , donc on a choisit les valeurs de l’exercice 3 (F0 et E0).
L’instruction ADCB est la commande qui nous permet de prendre en compte la retenue d’une addition
ADCB = B + M + Carry (retenue) or que B = 00 via l’instruction CLEAR (CLR) et M = 00 , donc a l’exécution
L’accumulateur B ne contient que la valeur de la retenue (0 ou 1) et comme ça on a put résoudre notre
problème !
5
Exercice 6 :
L’organigramme du programme :
Le programme associé :
LDA #$29
LSLA
LDB #$07
INCB
STB $50
ADDA $50
STA $0020
END
6
Exercice 7 :
LDX #$0050
LDA #$30
LDY #$0040
Loop LEAX A,Y
STX ,X+
INCA
LEAY 1,Y
CMPA #$35
BNE Loop
SWI