Introduction à l’Assembleur : réglage des paramètres de communication et déboggage


Télécharger Introduction à l’Assembleur : réglage des paramètres de communication et déboggage

★★★★★★★★★★5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


SOMMAIRE

1   ) DÉFINITION  page 2

2   ) L’ÉDITION           page 3

2.1  ) LANGAGE DE L’ ASSEMBLEUR X68C11 page 3

2.1.1)    LA SYNTAXE DE L’ASSEMBLEUR X68C11        page 3

2.1.1.1)  Label ou étiquette        page 3

2.1.1.2)  Adressage      page 3

2.1.1.3)  ) Types           page 4

2.1.1.4)  ) Opérations        page 4

2.1.2)    ) DIRECTIVES D’ASSEMBLAGE   page 4

2.1.2.1)  Contrôle de stockage page 4

2.1.2.2)  ) Définitions   page 5

2.1.2.3)  ) Mode           page 5

2.2  ) INSTRUCTIONS DU ?C 68HC11page 6

2.2.1)    ) ADRESSAGE           page 6

2.2.2)    ) CHARGEMENT, MÉMORISATION         page 6

ET TRANSFERT

2.2.3)    ) MANIPULATION ET TEST DE BITS       page 6

2.2.4)    ) OPÉRATIONS MATHÉMATIQUES         page 7

2.2.5)    OPÉRATIONS LOGIQUES  page 7

2.2.6)    )MULTIPLICATION ET DIVISION           page 8

2.2.7)    ) DÉCALAGES ET ROTATIONS     page 8

2.2.8)    ) STRUCTURE

page 8

2.2.9)    ) INSTRUCTIONS SUR LE REGISTRE D’ÉTAT   page 8

3   ) INCLUSION DE FICHIER  page 9

4   ) ASSEMBLAGE page 9

5) REGLAGE DES PARAMETRES DE COMMUNICATION                 page 10

6 ) DEBUGGER                                                                                                   page 10

1 ) DÉFINITION

Pour réaliser et utiliser un programme, il est nécessaire de suivre l’algorithme suivant

 

2 ) L’ÉDITION

Elle consiste à écrire un programme ( suite d’instructions ) à l’aide d’un éditeur de texte. Elle utilise le langage de l’assembleur X68C11et la syntaxe du µC68HC11.

On lance l’édition  à l’aide d’une commande  du logiciel WinHC11.

Une ligne d’instruction se présente sous la forme suivante :

ETIQUETTE              CODE OPERATOIRE           OPERANDE                 ; ; ‘’commentaire’’

2.1 ) LANGAGE DE L’ ASSEMBLEUR X68C11

2.1.1 ) LA SYNTAXE DE L’ASSEMBLEUR X68C11

2.1.1.1) Label ou étiquette

Distingue les majuscules des minuscules. Il est de règle de les mettre toujours en majuscule. Un label doit être déclaré dans son champ label ( colonne 1 ) , sinon les sauts relatifs sur ce label ne pourront pas être calculés et donc forcés à l’adressage étendu.

2.1.1.2)Adressage

Mode

Code opérande

Opérande

Le code opérande est ...

Inhérent

 

Implicitement contenue dans l’instruction

absent

Immédiat

#Label

#Valeur

Valeur : sur 8 ou 16 bits suivant l’instruction.

l’opérande lui-même

Etendu

Label

l’adresse de l’opérande

Direct

< Label

l’adresse de l’opérande Utilisé lorsque l’opérande est situé en page 0.

L’adressage direct peut être automatique en utilisant les directives ‘Absolute’ et ‘relative’ lors des réservations de mémoire.

Label

Indexé

Offset,X

l’index utilisé et le décalage. L’adresse de l’opérande est calculée par :

X + Offset        (en non signé)

Offset,Y

 

2.1.1.3 ) Types

 

Bases

ex :

 
 

Décimal

LDAA  #35

 

$

Hexadécimal

LDAA  #$2A

 

@

Octal

LDAA  #@25

 

%

Binaire

LDAA  #%10010111

 

ASCII

LDAA  #’K’

 

  2.1.1.4 ) Opérations   : le type du résultat doit rester compatible  AVEC

L’INSTRUCTION SINON erreur.

+ , -

arithmétique

ldab     #$46+5

 

& , ^

ET , OU

ldab     #$46&$F0

* , /

en non signé

ldab       #3562/60

.XOR.

Xor

ldab      #$.$F0

!

complément

ldab     #!$45

     

**

Exp ; 2**12 = 212

ldab

#73728/2**9

     

Les opérations ne travaillent que sur des entiers sans limite de dimension, alors il faut faire les * et + avant les / et - pour garder la précision. Le résultat doit être compatible avec son utilisation.

2.1.2 ) DIRECTIVES D’ASSEMBLAGE

2.1.2.1) Contrôle de stockage

Directive

Signification

Exemples

ORG

origine des labels

ORG

$B600

END

fin d’assemblage

END

 

FCB

stocke des octets en mémoire.

MEM1FCB

$55

   

MEM2FCB

21,%01101011,$E7

   

Mess1 FCB

‘I am happy !’

FDB

comme FCB sur des mots de 16 bits

MEM3FDB

$55AA

FCC

stocke une chaîne de caractères délimitée par un même caractère.

Mess2 FCC

Mess3 FCC

/I’m happy !/

*Vitesse (m/s) = *

RMB

réserve des bytes en mémoire

TAB      RMB

4

2.1.2.2 ) Définitions

Directive

Signification

 

Exemples

EQU

définit une constante

CONST1

     EQU    $B600

VAR

comme EQU mais

redéfinissable en cours de programme.

Utilisé lors des déclarations des variables locales stockées dans la pile.

CPTR

     VAR   2

2.1.2.3 ) Mode

Directive

Signification

Exemples

INCLUDE

permet d’inclure un fichier



DOS.

Un seul niveau d’inclusion.

INCLUDE

ABSOLUTE

:

:

:

Pour encadrer les labels qui doivent être adressés en direct sur la page 0

ABSOLUTE

                ORG    0

LAB1 ... ...

RELATIVE

On peut s ‘en passer mais alors l’adressage direct doit être explicite.

RELATIVE

BRSET

<Ad,M,Rel

2.2 ) INSTRUCTIONS DU ?C 68HC11

UN jeu complet des instructions est donné en annexe

2.2.1 ) ADRESSAGE

Les instructions sont données à l’aide de mnémoniques

Dans les instructions ‘ad’ peut être : rien   : Inhérent.

#Valeur          : Immédiat.

Label : Etendu, ou direct automatique en page 0.

Offset,X          : Indexé sur X ou Y avec offset constant 8 bits, non signé.

‘rel’ représente l’adressage relatif exclusivement réservé pour les branchements.

2.2.2 ) CHARGEMENT,  MEMORISATION  ET  TRANSFERT

 

Fonction

Mnémonique

Mise à 0

d’un octet mémoire

CLR     ad

 

de l’accu  A ou B

CLRr

Charge

l’accu A  ou B

LDAr ad

 

D, X , Y ou S

LDr ad

Mémorise

l’accu A ou B

STAr ad

 

D, X, Y ou S

STr ad

Transfert

A dans B ou l’inverse

TAB ou   TBA

 

A dans CCR  ou l’inverse

TAP ou   TPA

 

SP+1  dans X ou Y

TSr

 

X-1  ou  Y-1  dans SP

TrS

Echange D avec X ou Y

XGDr

Tire A, B, X ou Y de la pile

PULr

Pousse A, B, X ou Y dans la pile

PSHr

2.2.3 ) MANIPULATION  ET TEST  DE  BITS

Fonction

Mnémonique

Bit Test A ou B avec la mémoire

BITr   ad

Bits mis à                                 Zéro

BCLR   ad, msk

Un

BSET   ad, msk

Branche si bit(s) égal               Zéro

BRCLR   ad, msk, rel

Un

BRSET  ad, msk, rel

2.2.4 ) OPERATIONS ARITHMETIQUES

 

Fonction

Mnémonique

Addition

de l’accu B à A , à X ou Y (non signé)

ABr

d’une mémoire à A ou  B (8 bits) à D (16bits)

ADDr ad

 

avec retenue à A ou B

ADCr ad

Soustrait

mém. à A ou B sans retenue à D  (16bits)

SUBr ad

 

mém. à A ou B avec retenue

SBCr ad

 

B à A

SBA

Ajustement décimal de A

(après une addition, pas une incrémentation)

DAA

Incrémente

un octet mémoire

INC ad

 

A ou B

INCr

 

S, X ou Y

INr

Décrémente

un octet mémoire

DEC ad

 

A ou B

DECr

 

S, X ou Y

DEr

Complément à 2

d’un octet mémoire

NEG ad

 

de A ou B

NEGr

Compare

A à B

CBA

 

A ou B à une mémoire

CMPr ad

 

D, X ou Y à la mémoire

CPr ad

Test si zéro ou négatif             d’un octet

TST ad

de A ou B

TSTr

       

2.2.5 ) OPERATIONS LOGIQUES

Fonction

 

Mnémonique

mémoire ET A ou B

ANDr   ad

 

mémoire OU A ou B

ORAr   ad

 

mémoire OU EX A ou B

EORr   ad

 

Bit test mémoire ET A ou B

BITr   ad

 

Complémente               mémoire

COM    ad

 

A ou B

COMr

 

 2.2.6 )   MULTIPLICATION  ET  DIVISION

Fonction

 

Mnémonique

Multiplication :  A x B => D

MUL

 

Division fractionnaire :  D : X => X ; r => D

Num, Dénom = entiers 16bits,

Résult et Reste= fractionnaires 16 bits: $.xxxx

FDIV

 

Division entière  : D : X =>X ; r => D

Num, Dénom, Résult et Reste = entiers 16bits

IDIV

 

Fonction

 

Mnémonique

Mise à zéro du bit C, I, V

CLb

 

Mise à un du bit C, I, V

SEb

 

2.2.7 ) DECALAGES  ET  ROTATIONS

 

Fonction



 

Mnémonique

Décalage

à gauche

d’un octet

ASL ad

Arithmétique

Décalage logique

Rotation

 

à gauche

(? ASL) à droite

C à gauche

de A, B ou D d’un octet deA ou B d’un octet de A, B ou D d’un octet de A, B ou D d’un octet de A ou B d’un octet de A ou B

ASLr

ASR ad

ASRr

LSL ad

LSLr

LSR ad

LSRr

ROL ad

ROLr

ROR ad

RORr

2.2.8 ) STRUCTURE

Fonction

 

Mnémonique

Branche à un sous-programme

BSR rel

 

Saut à un sous-programme

JSR ad

 

Retour de sous-programme

RTS

 

Retour d’interruption

RTI

 

Interruption programmée

SWI

 

Attente d’interruption

WAI

 

Pas d’opération

NOP

 

Arrête l’horloge

STOP

 

2.2.9 ) INSTRUCTIONS SUR LE REGISTRE D’ETAT

 2.2.10 )   SAUTS ET BRANCHEMENTS

 

Fonction

   

Mnémonique

 

Saut

   

JMP      ad

   

Branche

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

   
 

? 0

(N = 0)

BPL rel

   
 

< 0

(N = 1)

BMI rel

   
 

pas de dépassement (V = 0)

BVC rel

   
 

dépassement (V = 1)

BVS rel

   

Après opération de comparaison o

si ?                         (signé)

u soustraction

BGE rel

   
 
 

           ?                    (non signé)

BHS rel

? BCC

 
 

(signé)

BGT rel

   
 

                                   (non signé)

BHI rel

   
 

(signé)

BLE rel

   
 

           ?                    (non signé)

BLS rel

   
 

(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 mnémonique dans votre programme, par exemple le fichier de configuration des 64 octets du µC68HC11 ( ), il faut ajouter la ligne suivante dans votre programme : pour la version Winhc11          INCLUDE ;table des registres de sortie pour la version Winhc12 INCLUDE    ;table des registres de sortie

Il faut aussi définir le chemin d’accès au fichier inclus par la commande

 

5) REGLAGE DES PARAMETRES DE COMMUNICATION

Il s’effectue à l’aide d’une commande du logiciel WinHC11.

 

*  Choix du port série de l’ordinateur ( com1 / com2 )

*  Choix de la fréquence du quartz : 7372800Hz

*  Choix du talker : : Bootstrap en PROM $FE00

6 ) DEBUGGER

Il s’effectue à l’aide d’une commande du logiciel WinHC11.

Une aide est disponible dans le logiciel.



2103