Vous êtes sur la page 1sur 7

Ecole Supérieure de Technologie de Béni Mellal

Université Sultan Moulay Slimane

ESTBM A.U. : 2020/2021 Pr : A.TANNOUCHE


TD Microprocesseur 6809
TD 1 :
Ecrire un programme assembleur permettant de faire l’addition de deux nombres
hexadécimaux nb1 et nb2 codés sur 8 bits. Vérifier et commenter toutes les étapes
de l’opération sur le simulateur (Flags, Nombre de cycles machines ... Etc.)
1/ nb1 et nb2 sont deux valeurs immédiates, Soit nb1=$03 et nb2=$05
Visualiser l’opération sur l’émulateur
2/ nb1 est une valeur immédiate et nb2 est contenu dans la case mémoire d’adresse
$0100, Soit nb1 = $03 et nb2 = [$0100] = $05
Visualiser l’opération sur l’émulateur
3/ nb1 et nb2 sont contenus dans les cases mémoires d’adresses $0100 et $0101, le
résultat doit être stocker dans la case mémoire $0102.
Soit [$0102] = [$0100] + [$0101]
Visualiser l’opération sur l’émulateur
4/ Changer les valeurs de nb1 et nb2. Essayer d’autres opération arithmétique et
logique. Visualiser l’opération sur l’émulateur
2
TD Microprocesseur 6809
TD 2 :
L’initialisation et le transfert mémoire d’une zone vers une autre sont parmi les
opérations intéressantes dans les systèmes à microprocesseur. Ce TD propose
d’étudier et d’élucider ces deux opérations.
1/ Ecrire "ESTBM" en code ASCII suivie du délimiteur NUL ‘0’ dans la RAM à partir
de l’adresse $0100. Visualiser l’opération sur l’émulateur
2/ Écrire un programme permettant d’initialiser le contenu des 100 premières cases
mémoires de la RAM à $FF. Visualiser l’opération sur l’émulateur
3/ Proposer un programme assembleur permettant de sauvegarder les nombres
entiers de 0 à 99 (codés sur 8 bits) en ordre croissant, à partir de l'adresse $0100 de
la mémoire RAM. Visualiser l’opération sur l’émulateur
4/ Modifier le programme précèdent pour pouvoir sauvegarder ces mêmes nombres
dans l’ordre décroissant à la suite des premiers dans la RAM. Visualiser l’opération sur
l’émulateur

3
TD Microprocesseur 6809
TD 2 suite :
Une table de données est un ensemble de données logées successivement dans la
mémoire. L'adresse de début de l’ensemble forme l’adresse de base de la table tandis
que le nombres de données forme la longueur.
Notons Table(Adr_Base, Longueur)
5/ La chaine de caractères "ESTBM" terminée par le caractère NUL ‘0’ est placée
dans la RAM à partir de l’adresse $0100.
a. Déterminer l’adresse de base et la longueur de cette table.
b. Transférer cette table à l’adresse $0000. Visualiser l’opération sur l’émulateur
6/ Écrire un programme assembleur permettant de déplacer une table T($0100,$20)
vers l’adresse $0200. Visualiser l’opération sur l’émulateur
7/ Soit la table T($0100, L) logée dans la RAM, écrire un programme assembleur
permettant de déterminer la longueur L de cette table T sachant que sa fin est
marquée par le délimiteur NUL ‘0’ et sauvegarder le résultat dans l’adresse $0200.
Visualiser l’opération sur l’émulateur.
4
TD Microprocesseur 6809
TD 3 :
1/ Mettre les nombres positifs suivants dans la RAM à partir de l’adresse $0100,
écrire un programme assembleur permettant de déterminer le minimum de ces
nombres et de le stocker dans l’adresse mémoire $0108. Visualiser l’opération sur
l’émulateur
Table ($0100, $08) = {$10, $12, $07, $00, $FF, $77, $36, $24}
2/ Modifier le programme précèdent pour trouver le maximum de ces nombres et le
stocker dans l’adresse mémoire $0109.
Visualiser l’opération sur l’émulateur.
3/ Modifier le programme précèdent pour déterminer la position de l’élément nul
dans la table et son adresse physique dans la RAM.
Stocker la position dans la mémoire à l’adresse $0108 et l’adresse physique à partir
de l’adresse $0109.
Visualiser l’opération sur l’émulateur.

5
TD Microprocesseur 6809
TD 3 suite :
4/ Écrire un programme assembleur permettant de faire la somme membre à
membre des tables de nombres positifs suivants. Stocker les résultats à partir de
l’adresse mémoire $0120.
Visualiser l’opération sur l’émulateur
Table1 ($0100, $08) = {$10, $12, $07, $00, $FF, $77, $36, $24}
Table2 ($0110, $08) = {$13, $22, $37, $69, $03, $88, $25, $11}
Table3 ($0120, $08) = {$23, $34, xx, xx, xx, xx, xx, xx}
5/ Modifier le programme précèdent pour sommer les tables à l'envers (le premier
élément de la Table1 et le dernier élément de la Table2 et ainsi de suite), Stocker
les résultats à partir de l’adresse mémoire $0150.
Visualiser l’opération sur l’émulateur
6/ Modifier le programme précèdent pour scruter la table à la recherche des
nombres négatifs, calculer leurs CA2 et les stocker à partir de l’adresse mémoire
$0170.
Visualiser l’opération sur l’émulateur.
6
Code ASCII (American Standard Code for Information Interchange)

Vous aimerez peut-être aussi