Vous êtes sur la page 1sur 6

Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018

Faculté : F.N.T.I.C Spécialité : 1ere Master Instrumentation


Département : Electronique et télécommunications Module : Systèmes à Microprocesseurs
Cours Motorola 6800 …

Chapitre 3 : Programmation de Motorola 6800 - Le transfert peut se faire entre registres.


TAB = Transférer le contenu de A vers B.
TBA = Transférer le contenu de B vers A.
TPA = Transférer le contenu de registre d’état (CCR) vers A.
1. Introduction :
TAP = Transférer le contenu de A vers registre d’état (CCR).
Le langage Assembleur adopté pour la programmation du Motorola 6800 possède,
comme chaque langue, un lexique et une syntaxe.
2.2. Les instructions de traitement de données :
Le lexique est le dictionnaire du 6800. Il est constitué de 78 instructions, qui permettent
Les instructions de traitement de données se répartissent en quatre catégories :
d’effectuer les différentes opérations du microprocesseur.
opérations arithmétiques, opérations logiques, opérations de déplacement de bits
La syntaxe est représentée par les modes d’adressage, qui assure une écriture correcte des
(décalages et rotation) et opérations d’incrémentation/ décrémentation et
différentes instructions.
complémentation.
Exemple :
2. Le jeu d’instructions du 6800 :
- Opérations arithmétiques :
Le microprocesseur Motorola 6800 possède 78 instructions, qui peuvent être
ADD = Addition.
classées en quatre catégories :
SUB = Soustraction.
- Instructions de transfert de données.
ADC = Addition avec retenue.
- Instructions de traitement de données.
SBC = Soustraction avec retenue.
- Instructions de test et de branchement.
- Instructions de contrôle.
- Opérations d’incrémentation / décrémentation – complémentation :
INC / DEC = Incrémenter / Décrémenter une case mémoire ou un registre.
2.1. Les instructions de transfert de données :
INX / DEX = Incrémenter / Décrémenter le registre d’index X.
Les instructions de transfert de données permettent de déplacer une donnée de 8
INS / DES = Incrémenter/ Décrémenter le registre SP (pointeur de pile).
bits entre deux registres, ou entre un registre et la mémoire, ou entre un registre et un
COM = Complément à 1.
boitier d’entrée sortie.
NEG = Complément à 2.
Exemple :
- Opérations logiques :
- Le contenu des accumulateurs A et B, registre d’index X, pointeur de pile SP
AND = ET logique. Utilisé pour mettre à zéro un bit (ou plusieurs bits) dans
peuvent être transférés en mémoire.
un mot binaire. (En effet, si l’une des entrées (x, y) vaut 0, il est
LDA = Charger l’accumulateur A ou B par une valeur.
garantit que le résultat de x AND y est 0).
STA = Ranger le contenu de l’accumulateur A ou B dans la mémoire.
LDX = Charger le registre d’index X par une adresse.
x y x AND y
STX = Ranger le contenu du registre d’index X dans la mémoire.
0 0 0
LDS = Charger le registre SP (pointeur de pile) par une adresse. 0 1 0
STS = Ranger le contenu du registre SP dans la mémoire. 1 0 0
1 1 1

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : Systèmes à Microprocesseur – N.NASRI Youtube : nadjib nasri matlablog
Chargé du cours/TD/TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 1ere Master Instrumentation
Département : Electronique et télécommunications Module : Systèmes à Microprocesseurs
Cours Motorola 6800 …

ORA = OU logique. Utilisé pour mettre à un (1) un bit (ou plusieurs bits) LSR = Logical Shift right (Décalage logique à droite).
dans un mot binaire. (En effet, si l’une des entrées (x, y) vaut 1, il
est garantit que le résultat de x ORD y est 1). Insertion
de 0
x y x ORA y Flag C
0 0 0 Décalage
0 1 1
1 0 1 ROL = Rotation à gauche.
1 1 1

EOR = OU exclusif. Utilisé pour comparaison, (En effet, si un bit d’un poids
donné est différent de son similaire entre deux mots binaires, le ou
exclusif sera égal à 1. Rotation

ROR = Rotation à droite.


x y x ORA y
0 0 0
0 1 1
1 0 1
1 1 0
Rotation
- Opérations de décalage / rotation :
ASL = Arithmetic Shift Left (Décalage arithmétique gauche).
2.3. Les instructions de test et de branchement :
Insertion Ces instructions sont utilisées dans le test de bits, l’interprétation des
de 0 conditions, la réalisation de boucles, l’appel de sous programmes … etc.
Flag C Exemple :
Décalage BNE (Branch if not equal) = Teste si Z = 0.
Copie du BEQ (Branch if equal) = Teste si N = 1.
Même bit ASR = Arithmetic Shift right (Décalage arithmétique à droite). BCC (Branch on carry clear) = Teste si C = 0.
BCS (Branch on carry set) = Teste si C = 1.
BRA et JMP = Branchement inconditionnel.
JSR = Appel d’un sous programme.
Flag C RTI = Retour d’interruption.
Décalage
RTS = Retour d’un sous programme.

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : Systèmes à Microprocesseur – N.NASRI Youtube : nadjib nasri matlablog
Chargé du cours/TD/TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 1ere Master Instrumentation
Département : Electronique et télécommunications Module : Systèmes à Microprocesseurs
Cours Motorola 6800 …

2.3. Les instructions de contrôle : 4. 1. Adressage immédiat :


Ces instructions permettent de modifier les flags du registre d’état, ou
d’interrompre le microprocesseur. 3.1.1. Registres de données (accumulateurs A et B) :
Exemple :
CLC = Annule le bit C du registre d’état.
LDA A # 25 Avant A: 8bits
CLI = Annule le bit I du registre d’état.
CLV = Annule le bit V du registre d’état. Charger l’accumulateur A par (25) hexa
SEC = met le bit c du registre d’état à 1.
Après A: 25 8bits
SEI = met le bit I du registre d’état à 1.
SEV = met le bit v du registre d’état à 1. s
SWI = interruption logicielle.
Note:
- Dans ce cas le registre de données A est sur 8bits donc l’opérande sera forcément
3. Forme d’une instruction en Assembleur : sur 8 bits.
- La présence du # indique au processeur de mettre directement dans A la valeur de
Etiquette Mnémonique Opérande (1 ou 2) Commentaire l’opérande (25) hexa (qui est une donnée) sans passer par la mémoire.
Utilisée dans les Code Valeur immédiate (Facultatif) - De même pour l’accumulateur B.
branchements Instruction Adresse mémoire
Registre 3.3.2. Registre d’index:
LDA A 0F13
étiquette LDA B #12
LDA A 10, X LDX # 0025 Avant X: 16bits
CLR B
INC A Charger le registre d’index par
BRA étiquette (0025) hexa. Après X: 0025 16bits
s
4. Modes d’adressage en 6800 :
Le microprocesseur Motorola 6800 possède six modes d’adressage : Note:
- Immédiat (Présence de #) - Dans ce cas le registre d’index est sur 16bits donc l’opérande sera forcément sur 16 bits.
- La présence du # indique au processeur de mettre directement dans X la valeur de
- Direct (L’opérande est une adresse de 8 bits)
l’opérande (0025) hexa (qui peut être un adresse) sans passer par la mémoire.
- Etendu (L’opérande est une adresse de 16 bits)
- L’indexé (Présence d’un pas + registre X)
- Relatif (Pour les instructions de branchements)
- Implicite (Pour les opérations concernant les registre du CPU,
exemple : INC A, CLR B … etc).

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : Systèmes à Microprocesseur – N.NASRI Youtube : nadjib nasri matlablog
Chargé du cours/TD/TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 1ere Master Instrumentation
Département : Electronique et télécommunications Module : Systèmes à Microprocesseurs
Cours Motorola 6800 …

3.3.3. Registre SP (pointeur de pile) :


Après A: 99 8bits

Avant SP : 16bits
LDS # 0025

Charger le registre SP par (0025) hexa. Après SP : 0025 16bits


s

Note:
- Dans ce cas l’opérande (qui est une adresse) est sur 8 bits.
- L’adressage Direct indique au processeur de mettre dans A le contenu de l’adresse (25)
hexa (Donc le processeur passera forcément par la mémoire).
- De même pour l’accumulateur B.
Note:
- Dans ce cas le registre SP est sur 16bits donc l’opérande sera forcément sur 16 bits. 4.2.2. Registres X et SP :
- La présence du # indique au processeur de mettre directement dans SP la valeur de Ces deux registres sont sur 16 bits alors l’adressage Direct ne s’applique pas. C’est
l’opérande (0025) hexa (qui est une adresse) sans passer par la mémoire. plutôt l’étendu qui est utilisé.

4. 2. Adressage direct :
4. 3. Adressage étendu :
4.2.1. Registres de données (accumulateurs A et B) :
4.3.1. Registres de données (accumulateurs A et B) :

LDA A # 25 Avant A: 8bits LDA A # 1125 Avant A: 8bits


Charger l’accumulateur A par le
Charger l’accumulateur A par le
contenu de l’adresse (25) hexa
contenu de l’adresse (1125) hexa

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : Systèmes à Microprocesseur – N.NASRI Youtube : nadjib nasri matlablog
Chargé du cours/TD/TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 1ere Master Instrumentation
Département : Electronique et télécommunications Module : Systèmes à Microprocesseurs
Cours Motorola 6800 …

Avant A: 3D 8bits Après X: 3D00 16bits


s

Note: Note:
- Dans ce cas l’opérande (qui est une adresse) est sur 16 bits. - L’adressage Etendu indique au processeur de mettre dans X le contenu de l’adresse
- L’adressage Etendu indique au processeur de mettre dans A le contenu de l’adresse (1125) hexa (Donc le processeur passera forcément par la mémoire).
(1125) hexa (Donc le processeur passera forcément par la mémoire). - Noter que sur le logiciel, la valeur 3D sera déposé dans la partie haute de registre d’index.
- Remarquez que l’adresse est sur 16 bits alors que son contenu est sur 8 bits.
- De même pour l’accumulateur B.
4.3.3. Registre SP (pointeur de pile) :

4.3.2. Registre d’index:


LDS 1125 Avant SP : 16bits
LDX 1125 Avant X: 16bits Charger le registre SP par le contenu
de l’adresse (1125) hexa.
Charger le registre d’index par le
contenu de l’adresse (1125) hexa.

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : Systèmes à Microprocesseur – N.NASRI Youtube : nadjib nasri matlablog
Chargé du cours/TD/TP : N.Nasri …
Université : Kasdi Merbah Ouargla Année Universitaire : 2017 / 2018
Faculté : F.N.T.I.C Spécialité : 1ere Master Instrumentation
Département : Electronique et télécommunications Module : Systèmes à Microprocesseurs
Cours Motorola 6800 …

On a :
Après SP : 3D00 16bits SUB B 04, X SUB B adresse1
s
Or :
Adresse1 = Contenu (X) + 04
Adresse1 = 0150 + 04
Adresse1 = 0154

Alors :
SUB B 04, X SUB B adresse1

Note: 𝐒𝐔𝐁 𝐁 𝟎𝟒, 𝐗 SUB B 0154


- L’adressage Etendu indique au processeur de mettre dans SP le contenu de l’adresse
𝐒𝐔𝐁 𝐁 𝟎𝟒, 𝐗 B = Contenu (B) – Contenu (0154)
(1125) hexa (Donc le processeur passera forcément par la mémoire)
- Noter que sur le logiciel, la valeur 3D sera déposé dans la partie haute de registre SP. 𝐒𝐔𝐁 𝐁 𝟎𝟒, 𝐗 (FF)hexa - (04)hexa

4. 4. Adressage indexé : Et on obtient le résultat suivant :


B = FA.

Avant B: FF 8bits
SUB B 04, X Après B: FA 8bits
X: 0150 16bits
04 est le pas qu’il faut rajouter au X: 0150 16bits
contenu de X. s
s
Ici, on réalise une soustraction entre
le contenu de B est le contenu de
l’adresse indexée qu’on appellera
adresse1.

Site : www.sites.google.com/site/universite2ouargla Groupe Facebook : Nasri Instrumentation Ouargla


Elearn : Systèmes à Microprocesseur – N.NASRI Youtube : nadjib nasri matlablog
Chargé du cours/TD/TP : N.Nasri …

Vous aimerez peut-être aussi