numEctron http://nalhossri.free.fr
_______________________________________________________________________
Code Warrior - nouveau projet structuré en langage Assembleur
Nabil Al-HOSSRI, département GEII IUT Bordeaux1
Les démarches à suivre pour construire un projet modèle en langage Assembleur sont
semblables à ce que l'on a vu lors de l'ouverture d'un projet en langage C.
Sous Explorer de Windows, préparer un dossier vide et lui donner un nom au choix (par
exemple: MonPremierProjet_ASM) dans lequel on sauvegardera notre nouveau projet.
Ensuite, lancer CW, en cliquant sur l'icône IDE (version 5.1 ou 6.1) ; la page suivante
s'affiche :
Valider File -> New Project pour faire apparaître la fenêtre :
______________________________________________________________________________
1
On vous demande la version du processeur que vous utilisez pour votre projet.
Code Warrior - nouveau projet structuré en langage Assembleur
numEctron http://nalhossri.free.fr
_______________________________________________________________________
Double Clic dans HC08 puis dans G Family ; valider MC68HC908GP32, et remplir la
fenêtre qui s'ouvre comme suit :
Valider Mon08 Interface ; et voilà la suite, après la validation de Suivant>
______________________________________________________________________________
2
Code Warrior - nouveau projet structuré en langage Assembleur
numEctron http://nalhossri.free.fr
_______________________________________________________________________
Choisissez votre langage de programmation. On peut avoir plusieurs langages de
programmation, et par défaut, le C est coché.
Dans le cas présent, je vous conseille d’utiliser « Absolute Assembly », pour deux raisons
principales. Cela permet :
1. de rester vraiment dans un environnement Assembleur.
2. d'avoir un fichier source autonome, qui comportera toutes les informations
nécessaires pour un bon fonctionnement dans un autre compilateur, à savoir : plan
d'occupation de la mémoire, vecteurs d'adresses d'interruption concernant le micro
utilisé, etc…
De toute façon, on a toujours la possibilité d'utiliser la fonction Include, qui permet
à l'éditeur de liens d'associer des feuilles de codes personnalisés venant d'autres
programmes.
A ce stade, valider Set... pour sauvegarder le projet, par exemple sous le nom
MonPremierProgramme_ASM, dans le dossier (MonPremierProjet_ASM) déjà créé.
L'écran précédent devient ainsi :
Clic sur Terminer pour valider le projet.
______________________________________________________________________________
3
Code Warrior - nouveau projet structuré en langage Assembleur
numEctron http://nalhossri.free.fr
_______________________________________________________________________
Voici le fichier « main.asm » ainsi créé ; les commentaires sont en rouge:
______________________________________________________________________________
4
Code Warrior - nouveau projet structuré en langage Assembleur
numEctron http://nalhossri.free.fr
_______________________________________________________________________
;*******************************************************************
;* This stationery serves as the framework for a user application *
;* For a more comprehensive program that demonstrates the more *
;* advanced functionality of this processor, please see the *
;* demonstration applications, located in the examples *
;* subdirectory of the "Freescale CodeWarrior for HC08" program *
;* directory. *
;*******************************************************************
; Ici est défini le fichier du composant utilisé ; on peut, bien sûr, en ajouter d’autres avec la ; fonction INCLUDE.
; Include derivative-specific definitions
INCLUDE 'derivative.inc'
;
; export symbols
;
XDEF _Startup
ABSENTRY _Startup
;
; Définition de la RAM
; variable/data section
;
ORG RAMStart ; Insert your data definition here
ExampleVar: DS.B 1
;
; Définition de la Flash
; code section
;
ORG ROMStart
_Startup:
LDHX #RAMEnd+1 ; initialize the stack pointer
TXS
CLI ; enable interrupts
; Ceci sert à initialiser le pointeur en RAM, en fin de RAM, plus exactement RAMEnd+1
; Ici, peut commencer votre programme en Assembleur
mainLoop:
; Insert your code here
NOP
feed_watchdog
BRA mainLoop
; Ne pas oublier de définir les vecteurs de reset sinon votre programme ne fonctionnera pas
;**************************************************************
;* spurious - Spurious Interrupt Service Routine. *
;* (unwanted interrupt) *
;**************************************************************
spurious: ; placed here so that security value
NOP ; does not change all the time.
RTI
;**************************************************************
;* Interrupt Vectors *
;**************************************************************
ORG $FFFA
DC.W spurious ;
DC.W spurious ; SWI
DC.W _Startup ; Reset
______________________________________________________________________________
5
5
Code Warrior - nouveau projet structuré en langage Assembleur
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !