6800 programmation en langage asembleur resume table

publicité
6800
PROGRAMMATION EN LANGAGE
ASEMBLEUR
RESUME
Ce livre constitue un cours complet de programmation, en langage
assembleur, du microprocesseur 6800. Chacune des instructions est
présentée séparément et commentée dans tous ses détails. De nombreux
programmes rédigés à la fois en assembleur et en langage machine,
développent les applications.
Extrait de la table des matières : Introduction au langage de
programmation en assembleur. Les assembleurs. Le jeu d'instructions du
6800 en langage assembleur Programmes simples. Programmes simples
avec boucles. Le codage des caractères. Conversion de codes.
Problèmes arithmétiques. Tables et listes. Sous programmes . Entréessorties. Interruptions. Définition des problèmes et conception des
programmes. Débugage et test. Documentation et reconception.
Exemples de projets.
TABLE DES MATIERES
Chapitre 1
Introduction au langage de programmation en assembleur
Signification des instructions
Un programme informatique
Le problème de la programmation
Utilisation de l'octal ou de l'hexadécimal
Mnémoniques des codes d'instructions
Le programme assembleur
Caractéristiques additionnelles des assembleurs
Inconvénients du langage assembleur
Langages haut niveau
Avantages des langages haut niveau
Inconvénients des langages haut niveau
Langages haut niveau pour microprocesseurs
Quel niveau devriez-vous utiliser ?
Et pour le futur ?
Pourquoi ce livre ?
5
5
5
6
7
9
9
10
11
12
13
13
15
16
17
18
Chapitre 2
Les assembleurs
Instructions de l'assembleur
Labels
Mnémoniques de l'assembleur
Pseudo-opérations
Pseudo-opérations sur données
Pseudo-opérations équate (ou définie)
19
19
21
23
23
24
25
Pseudo-opération origine
26
Pseudo-opération réserve
Pseudo-opérations d'intendance
Labels avec pseudo-opérations
Champs opérandes et adresses
Assemblages conditionnels
Macros
27
29
29
29
31
32
Macros
Commentaires
Types d'assembleurs
Erreurs
Chargeurs
Chapitre 3
Le jeu d'instruction du 6800 en langage assembleur
Les registres de l'UCT et les indicateurs
Mode d'adressage mémoire du 6800
Mode mémoire, immédiat
Mode mémoire, direct
Mode mémoire, indexé
Mode mémoire, étendu
Mode inhérent
Mode relatif
Accumulateur
Abréviations
Codes objets des instructions
Temps d'exécution des instructions et codes
ABA - Addition de l'accumulateur B à l'accumulateur A
ADC - Addition de la mémoire, avec retenue, à l'accumulateur A ou B
ADD - Addition de la mémoire à l'accumulateur
AND - ET, logique de la mémoire avec l'accumulateur
ASL - Décalage à gauche de l'octet mémoire ou accumulateur
ASR - Décalage à droite de l'octet accumulateur ou mémoire
BCC - Brancher si carry = 0
BCS - Brancher si carry = 1
BEQ - Brancher si égal
BOE - Brancher si plus grand ou égal à zéro
BOl - Brancher si plus grand que zéro
BHI - Brancher si plus grand
BIT - Test de bit
BLE - Brancher si plus petit ou égal à zéro
BLS - Brancher si plus petit ou égal
BL T - Brancher si moins que zéro
BMI - Brancher si négatif
BNE - Brancher si non égal
BPL - Brancher si positif
BRA - Brancher à l'instruction identifiée par l'opérande
BSR - Brancher au sous-programme identifié par l'opérande
BVC - Brancher si pas de dépassement
BVS - Brancher si dépassement
CBA - Comparer les accumulateurs
CLC - Mise à zéro du carry
CLI - Mise à zéro du masque d'interruptions
CLR - Mise à zéro accumulateur ou mémoire
CL V - Mise à zéro du dépassement
CMP - Comparer accumulateur et mémoire
CaM - Complémenter l'accumulateur ou la mémoire
CPX - Comparer l'index
DAA - Ajustage décimal de l'accumulateur
DEC - Décrémenter l'accumulateur ou la mémoire
DES - Décrémenter le pointeur de pile
DEX - Décrémenter le registre index
EOR - OU exclusif entre accumulateur et mémoire
INC - Incrémentation accumulateur ou mémoire
INS - Incrémenter le pointeur de pile
INX - Incrémentation du registre d'index
JMP - Saut en adressage indexé ou étendu
JSR - Saut à sous-programme en adressage indexé ou étendu
LDA - Charger l'accumulateur à partir de la mémoire
LDS - Charger le pointeur de pile
LDX - Charger le registre d'index
LSR - Décalage logique à droite accumulateur ou mémoire
NEG - Complémenter à deux accumulateurs ou mémoire
NOP - NON opération
ORA - OU logique entre accumulateur et mémoire
PSH - Sauvegarder l'accumulateur dans la pile
PUL - Extraire les données de la pile
ROL - Rotation accumulateur ou mémoire à gauche via le carry
RTl - Retour d'interruption
TRS - Retour de sous-programme
SBA - Soustraction entre accumulateur
SBC - Soustraction entre accumulateur et mémoire avec retenue
SEC - Mise à 1 du carry
32
33
34
36
36
38
38
42
43
44
45
47
48
48
48
49
51
51
62
62
66
67
68
70
72
72
72
73
73
74
74
75
76
77
77
77
78
78
79
80
81
81
82
82
83
84
85
86
87
89
89
92
92
93
94
95
96
96
98
99
100
101
102
104
106
106
108
109
110
113
115
115
116
117
SEC - Mise à 1 du carry
SEI - Mise à 1 du masque d'interruption
SEV - Mise à 1 du dépassement
STA - Ranger l'accumulateur en mémoire
STS - Ranger le pointeur de pile
STX - Ranger l'index
SUB - Soustraction mémoire de l'accumulateur
SWI - Interruption logicielle
TAB - Transfert de l'accumulateur A à l'accumulateur B
TAP - Transfert de l'accumulateur A au CRR
TBA - Transfert de l'accumulateur B à l'accumulateur A
TPA - Transfert du CRR à l'accumulateur A
TST - Test de l'accumulateur ou de la mémoire
TSX - Transfert du pointeur de pile à l'index
TXS - Transfert de l'index vers le pointeur de pile
WAI - Attente d'interruption
Convention de l'assembleur 6800 Motorola
Structure des champs de l'assembleur
Pseudo-opérations
Labels et pseudo-opérations
Adresses
Autres caractéristiques de l'assembleur
117
118
118
119
120
121
122
123
124
125
125
126
127
129
129
130
131
131
131
133
133
134
Chapitre 4
Programmes simples
Format général des exemples
Exemples de programmes
Problèmes
135
135
137
146
Chapitre 5
Programmes simples avec boucles
Exemples
Problèmes
150
152
163
Chapitre 6
Le codage des caractères
Exemples
Problèmes
166
167
180
Chapitre 7
Conversion de codes
Exemples
Problèmes
183
183
192
Chapitre 8
Problèmes arithmétiques
Exemples
Problèmes
195
195
214
Chapitre 9
Tables et listes
Exemples
Problèmes
218
218
230
Chapitre 10
Sous-Programmes
Documentation des sous-programmes
Exemples
Problèmes
234
236
236
251
Chapitre 11
Entrées-sorties
Programmes de temporisation
Exemples
L'interface d'adaptation de périphériques 6820 (PIA)
Registre de contrôle du PIA
Configuration du PIA
Exemples de configurations du PIA
Utilisation du PIA pour transférer des données
Exemples
Programmes en assembleur
Problèmes
Dispositifs d'entrée/sortie plus complexes
Exemples
Interfaces standards
Problèmes
Références
255
263
263
266
269
272
273
275
276
285
301
303
305
332
333
335
Chapitre 12
Interruptions
Le système d'interruptions du 6800
Exemples
Services d'interruptions plus généraux
Problèmes
337
338
343
360
361
Chapitre 13
Définition des problèmes et conception des programmes
Fonction du logiciel de développement
Définition des problèmes
Définition des entrées
Définition des sorties
Section de traitement
Traitement des erreurs
Facteurs humains
Exemples
Résumé des problèmes de définitions
Conception du programme
Les organigrammes
Exemples
Programmation modulaire
Exemples
Résumé de la programmation modulaire
Programmation structurée
Exemples
Résumé de la programmation structurée
Conception descendante
Exemples
Résumé de la conception descendante
Résumé de la définition des problèmes et de la conception des programmes
362
362
365
365
365
366
366
367
368
376
377
378
379
386
387
389
390
394
401
402
403
406
408
Chapitre 14
Débugage et test
Outils simples de débugage
Outils de débrayage plus évolués
Recherche des erreurs
Introduction au test
Sélection des données de test
Précautions lors des tests
Conclusions
409
409
414
418
430
431
433
433
Chapitre 15
Documentation et reconception
Programmes auto-documentés
Commentaires
Organigramme documentaire
Programmation structurée documentaire
Cartes de la mémoire
Listes de paramètres et de définitions
Bibliothèques de programmes
Exemple de fiches de programmes
Synthèse de la documentation
Reconception
Réorganisation pour consommer moins de mémoire
Réorganisations majeures
435
435
436
440
440
440
442
443
444
446
447
447
449
Chapitre 16
Exemples de projets
Projet n°1
un minuteur
Projet n°2
un thermomètre numérique
Références
TOP
451
451
458
474
Téléchargement