6809
© Copyright 1996−2001, @Pepper's.
Systèmes à Microprocesseurs − 6809
ED N° 1
.:: Opérations de Base ::.
♦ P1 Création d'une table de données
♦ P2 Dénombrement de données spécifiques dans une table
♦ P3 Multiplication
♦ P4 Détermination du maximum ou du minimum d'une table
♦ P5 Transfert d'une table de données d'une zone mémoire vers une autre
♦ P6 Détermination logicielle de la parité croisée d'une table de données
♦ P7 Tri des données d'une table
ED N° 2
.:: Opérations Arithmétiques − Conversions ::.
♦ P1 Détection et correction d'erreurs
♦ P2 Table de correspondance hexadécimal − décimal
♦ P3 Conversion DCB − binaire
♦ P4 Multiplication
♦ P5 Division
ED N° 3
.:: Interface Parallèle PIA 6821 − Interruptions ::.
♦ Introduction
♦ P1 Etude des Ports Entrée / Sortie
♦ P2 Etude des Interruptions
♦ P3 Etude des Lignes de Dialogues
© Copyright 1996−2001, @Pepper's.
1
Systèmes à Microprocesseurs − 6809
P1 Création d'une table de données
Sujet
Une table de données consiste en une liste de données quelconques logées en mémoire à des adresses successives.
L'adresse de la première donnée est qualifiée d'adresse de base de la table.
Question 1
Proposer un programme permettant de ranger en mémoire dans l'ordre croissant l'ensembles des données 8 bits non signées à partir de l'adresse de base $0100.
Commentaires
La plage des nombres non signés s'étend de $00 à $FF. Il faudra donc charger la mémoire avec ces 256 valeurs.
Programme
..:: Création d'une table de données en bits non signés ::..
Boucle
ORG
LDX
LDA
STA
CMPA
BEQ
INCA
BRA
Fin
$0000
#$0100
#$00
,X+
#$FF
Fin
*
*
*
*
*
Début du programme
Début de table
1ere données $00
Chargement et incrémentation du pointeur
Dernière donnée = $FF alors fin de programme
* Incrémentation de la donnée
Boucle
SWI
Etat de la mémoire après exécution du programme
0100
0110
0120
0130
0140
0150
0160
0170
0180
0190
01A0
01B0
01C0
01D0
01E0
01F0
00
10
20
30
40
50
60
70
80
90
A0
B0
C0
D0
E0
F0
01
11