Vous êtes sur la page 1sur 10

COURS ASSEMBLEUR 68HC11

1/10

SOMMAIRE
1 ) DFINITION

page 2

2 ) LDITION

page 3

2.1 ) LANGAGE DE L ASSEMBLEUR X68C11


2.1.1) LA SYNTAXE DE LASSEMBLEUR X68C11
2.1.1.1) Label ou tiquette
2.1.1.2) Adressage
2.1.1.3 ) Types
2.1.1.4 ) Oprations

2.1.2 ) DIRECTIVES DASSEMBLAGE


2.1.2.1) Contrle de stockage
2.1.2.2 ) Dfinitions
2.1.2.3 ) Mode
2.2 ) INSTRUCTIONS DU C 68HC11
2.2.1 ) ADRESSAGE
2.2.2 ) CHARGEMENT, MMORISATION
ET TRANSFERT
2.2.3 ) MANIPULATION ET TEST DE BITS
2.2.4 ) OPRATIONS MATHMATIQUES
2.2.5.) OPRATIONS LOGIQUES
2.2.6 ) MULTIPLICATION ET DIVISION
2.2.7 ) DCALAGES ET ROTATIONS
2.2.8 ) STRUCTURE
page 8
2.2.9 ) INSTRUCTIONS SUR LE REGISTRE DTAT

page 3
page 3
page 3
page 3
page 4
page 4
page 4
page 4

page 5
page 5
page 6
page 6
page 6
page 6
page 7
page 7
page 8
page 8

page 8

3 ) INCLUSION DE FICHIER

page 9

4 ) ASSEMBLAGE

page 9

5) REGLAGE DES PARAMETRES DE COMMUNICATION

page 10

6 ) DEBUGGER

page 10

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


2/10

1 ) DFINITION
Pour raliser et utiliser un programme, il est ncessaire de suivre lalgorithme suivant

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


3/10

2 ) LDITION
Elle consiste crire un programme ( suite dinstructions ) laide dun diteur de texte.
Elle utilise le langage de lassembleur X68C11et la syntaxe du C68HC11.
On lance ldition laide dune commande
du logiciel WinHC11.

Une ligne dinstruction se prsente sous la forme suivante :


ETIQUETTE

CODE OPERATOIRE

OPERANDE

; ; commentaire

2.1 ) LANGAGE DE L ASSEMBLEUR X68C11


2.1.1 ) LA SYNTAXE DE LASSEMBLEUR X68C11
2.1.1.1) Label ou tiquette
Distingue les majuscules des minuscules. Il est de rgle de les mettre toujours en majuscule.
Un label doit tre dclar dans son champ label ( colonne 1 ) , sinon les sauts relatifs sur ce
label ne pourront pas tre calculs et donc forcs ladressage tendu.
2.1.1.2)Adressage
Mode
Code oprande
Oprande
Inhrent
Implicitement contenue
dans linstruction
Immdiat #Label
Valeur : sur 8 ou 16 bits
#Valeur
suivant
Etendu
Label
linstruction.
Direct
< Label
Label

Index

Offset,X
Offset,Y

Cours C assembleur.doc

Le code oprande est ...


absent
loprande lui-mme
ladresse de loprande
ladresse de loprande
Utilis lorsque loprande est
situ en page 0.
Ladressage direct peut tre
automatique en utilisant les
directives Absolute et
relative lors des rservations
de mmoire.
lindex utilis et le dcalage.
Ladresse de loprande est
calcule par :
X + Offset
(en non sign)

COURS ASSEMBLEUR 68HC11


4/10
2.1.1.3 ) Types
Bases
Dcimal
Hexadcimal
Octal
Binaire
ASCII

$
@
%

ex :
LDAA
LDAA
LDAA
LDAA
LDAA

#35
#$2A
#@25
#%10010111
#K

2.1.1.4 ) Oprations : le type du rsultat doit rester compatible AVEC


LINSTRUCTION SINON erreur.
+,*,/
!
**

arithmtique
en non sign
complment
Exp ; 2**12 =
212

ldab
ldab
ldab
ldab

#$46+5
#3562/60
#!$45

& , ^ ET , OU ldab
.XOR. Xor
ldab

#$46&$F0
#$46.XOR.$F0

#73728/2**9
Les oprations ne travaillent que sur des entiers sans limite de dimension, alors il faut faire les
* et + avant les / et - pour garder la prcision. Le rsultat doit tre compatible avec son
utilisation.
2.1.2 ) DIRECTIVES DASSEMBLAGE
2.1.2.1) Contrle de stockage
Directive
Signification
ORG
origine des labels
END
fin dassemblage
FCB
stocke des octets en mmoire.
FDB
FCC
RMB

comme FCB sur des mots de


16 bits
stocke une chane de
caractres dlimite par un
mme caractre.
rserve des bytes en mmoire

ORG
END
MEM1FCB
MEM2FCB
Mess1 FCB
MEM3FDB
Mess2 FCC
Mess3 FCC

Exemples
$B600
$55
21,%01101011,$E7
I am happy !
$55AA
/Im happy !/
*Vitesse (m/s) = *

TAB RMB 4

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


5/10

2.1.2.2 ) Dfinitions
Directive
Signification
EQU
dfinit une constante
VAR
comme EQU mais
redfinissable en cours de
programme.
Utilis lors des dclarations
des variables locales stockes
dans la pile.

CONST1
CPTR

Exemples
EQU $B600
VAR 2

2.1.2.3 ) Mode
Directive
INCLUDE
ABSOLUTE
:
:
:
RELATIVE

Signification
permet dinclure un fichier
DOS.
Un seul niveau dinclusion.
Pour encadrer les labels qui
doivent tre adresss en direct
sur la page 0
LAB1
On peut s en passer mais
alors ladressage direct doit
tre explicite.

Exemples
INCLUDE
FICHIER.EXT
ABSOLUTE
ORG 0
...
...
RELATIVE

BRSET
<Ad,M,Rel

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


6/10

2.2 ) INSTRUCTIONS DU C 68HC11


UN jeu complet des instructions est donn en annexe
2.2.1 ) ADRESSAGE
Les instructions sont donnes laide de mnmoniques
Dans les instructions ad peut tre :
rien
: Inhrent.
#Valeur
: Immdiat.
Label : Etendu, ou direct automatique en page 0.
Offset,X
: Index sur X ou Y avec offset constant 8 bits, non sign.
rel reprsente ladressage relatif exclusivement rserv pour les branchements.
2.2.2 ) CHARGEMENT, MEMORISATION ET TRANSFERT
Fonction
Mise 0
dun octet mmoire
de laccu A ou B
Charge
laccu A ou B
D, X , Y ou S
Mmorise
laccu A ou B
D, X, Y ou S
Transfert
A dans B ou linverse
A dans CCR ou linverse
SP+1 dans X ou Y
X-1 ou Y-1 dans SP
Echange D avec X ou Y
Tire A, B, X ou Y de la pile
Pousse A, B, X ou Y dans la pile

Mnmonique
ad

CLR
CLRr
LDAr ad
LDr ad
STAr ad
STr ad
TAB ou TBA
TAP ou TPA
TSr
TrS
XGDr
PULr
PSHr

2.2.3 ) MANIPULATION ET TEST DE BITS


Fonction
Bit Test A ou B avec la mmoire
Bits mis
Zro
Un
Branche si bit(s) gal
Zro
Un

Mnmonique
BITr ad
BCLR ad, msk
BSET ad, msk
BRCLR ad, msk, rel
BRSET ad, msk, rel

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


7/10

2.2.4 ) OPERATIONS ARITHMETIQUES


Fonction
de laccu B A ,
X ou Y (non sign)
dune mmoire A ou B (8 bits)
D (16bits)
avec retenue A ou B
Soustrait
mm. A ou B sans retenue
D (16bits)
mm. A ou B avec retenue
BA
Ajustement dcimal de A
(aprs une addition, pas une incrmentation)
Incrmente
un octet mmoire
A ou B
S, X ou Y
Dcrmente
un octet mmoire
A ou B
S, X ou Y
Complment 2
dun octet mmoire
de A ou B
Compare
AB
A ou B une mmoire
D, X ou Y la mmoire
Test si zro ou ngatif
dun octet
de A ou B
Addition

Mnmonique
ABr
ADDr ad
ADCr ad
SUBr ad
SBCr ad
SBA
DAA
INC ad
INCr
INr
DEC ad
DECr
DEr
NEG ad
NEGr
CBA
CMPr ad
CPr ad
TST ad
TSTr

2.2.5 ) OPERATIONS LOGIQUES


Fonction
mmoire ET A ou B
mmoire OU A ou B
mmoire OU EX A ou B
Bit test mmoire ET A ou B
Complmente
mmoire
A ou B

Mnmonique
ANDr ad
ORAr ad
EORr ad
BITr ad
COM ad
COMr

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


8/10
2.2.6 ) MULTIPLICATION ET DIVISION
Fonction
Multiplication : A x B => D
Division fractionnaire : D : X => X ; r => D
Num, Dnom = entiers 16bits,
Rsult et Reste= fractionnaires 16 bits: $.xxxx
Division entire : D : X =>X ; r => D
Num, Dnom, Rsult et Reste = entiers 16bits

Mnmonique
MUL
FDIV
IDIV

2.2.7 ) DECALAGES ET ROTATIONS


Fonction
gauche

Dcalage
Arithmtique

droite
C

Dcalage
logique

gauche
( ASL)
droite
C

Rotation

gauche
C

droite

dun octet
de A, B ou D
dun octet
deA ou B
dun octet
de A, B ou D
dun octet
de A, B ou D
dun octet
de A ou B
dun octet
de A ou B

Mnmonique
ASL ad
ASLr
ASR ad
ASRr
LSL ad
LSLr
LSR ad
LSRr
ROL ad
ROLr
ROR ad
RORr

2.2.8 ) STRUCTURE
Fonction
Branche un sous-programme
Saut un sous-programme
Retour de sous-programme
Retour dinterruption
Interruption programme
Attente dinterruption
Pas dopration
Arrte lhorloge

Mnmonique
BSR rel
JSR ad
RTS
RTI
SWI
WAI
NOP
STOP

2.2.9 ) INSTRUCTIONS SUR LE REGISTRE DETAT


Fonction
Mise zro du bit C, I, V
Mise un du bit C, I, V

Mnmonique
CLb
SEb

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


9/10
2.2.10 ) SAUTS ET BRANCHEMENTS
Fonction

Saut
Branche

Mnmonique
JMP ad
toujours
BRA rel
jamais
BRN rel
si non retenue (C = 0)
BCC rel
retenue
(C = 1)
BCS rel
#0
(Z = 0)
BNE rel
=0
(Z = 1)
BEQ rel
BPL rel
0
(N = 0)
<0
(N = 1)
BMI rel
pas de dpassement (V = 0) BVC rel
dpassement (V = 1)
BVS rel
Aprs opration de comparaison ou soustraction
si
BGE rel
(sign)

(non sign)
BHS rel
BCC
>
(sign)
BGT rel
>
(non sign)
BHI rel
BLE rel

(sign)
BLS rel

(non sign)
<
(sign)
BLT rel
<
(non sign)
BLO rel
BCS
si bits 0
BRCLR ad,msk,rel
bits 1
BRSET ad,msk,rel

3) INCLUSION DE FICHIER
Pour inclure un fichier mnmonique dans votre programme, par exemple le fichier de
configuration des 64 octets du C68HC11 ( registr.equ ), il faut ajouter la ligne suivante dans
votre programme :
pour la version Winhc11
INCLUDE ../REGISTR.EQU ;table des registres de sortie
pour la version Winhc12
INCLUDE REGISTR.EQU ;table des registres de sortie
Il faut aussi dfinir le chemin daccs au fichier inclus par la commande

4 ) ASSEMBLAGE
Il seffectue laide dune commande du logiciel WinHC11.
Deux fichiers sont gnrs dextensions lst et S19.

Cours C assembleur.doc

COURS ASSEMBLEUR 68HC11


10/10

5) REGLAGE DES PARAMETRES DE COMMUNICATION


Il seffectue laide dune commande du logiciel WinHC11.

* Choix du port srie de lordinateur ( com1 / com2 )


* Choix de la frquence du quartz : 7372800Hz
* Choix du talker : : Bootstrap en PROM $FE00

6 ) DEBUGGER
Il seffectue laide dune commande du logiciel WinHC11.
Une aide est disponible dans le logiciel.

Cours C assembleur.doc