• Aucun résultat trouvé

Structure d’un programme en assembleur

N/A
N/A
Protected

Academic year: 2022

Partager "Structure d’un programme en assembleur"

Copied!
10
0
0

Texte intégral

(1)

Structure d’un programme en

assembleur

(2)

Les fichiers d’en-tête

;*************************************************************************

; Ce programme génère une horloge en RB0

; de fréquence 24 fois plus faible que celle du quartz. *

; il utilise la carte PicDem2Plus équipée d'un PIC16F877A *

;*************************************************************************

LIST P=16F877A ; directive qui définit le processeur utilisé

#include <P16F877A.INC> ; fichier de définition des constantes

;--- Register Files--- INDF EQU H'0000'

TMR0 EQU H'0001' PCL EQU H'0002'

STATUS EQU H'0003' FSR EQU H'0004'

PORTA EQU H'0005'

;--- STATUS Bits --- IRP EQU H'0007' RP1 EQU H'0006' RP0 EQU H'0005'

NOT_TO EQU H'0004' NOT_PD EQU H'0003' Z EQU H'0002'

(3)

Le registre de configuration

;************************************************************************

; BITS DE CONFIGURATION

;*************************************************************************

__CONFIG _HS_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF

; _XS_OSC l'oscillateur est configuré en oscillateur à quartz haute fréquence

; _WDT_OFF le watchdog est désactivé

; _CP_OFF le code de protection de la mémoire programme est désactivé

; _CPD_OFF le code de protection de la mémoire EEPROM est désactivé

; _LVP_OFF la programmation basse tension est désactivée

; ces opérations sont nécessaires pour fonctionner en mode "debug"

(4)

Les directives « org » et « end »

org 0x00 ; adresse pointée après un reset ;

; l’instruction qui va suivre se trouvera à cette adresse goto debut ; saut à l’étiquette marquant le début du programme org 0x10 ; cette adresse doit être supérieure à 0x04

debut ; étiquette marquant le début du programme

end ; directive signalant la fin du programme

(5)

La déclaration des variables

CBLOCK 0x20 ; début de la zone variable

Variable1 : 1 ; Variable1 a une taille de 1 octet

Variable2 : 1 ; Variable2 a une taille de 1 octet

tableau : 8 ; tableau est une variable de 8 octets

ENDC

(6)

L’écriture de variables

(7)

Les facilités d’écriture

 assignations assignations

 définitions définitions

 macro instructions macro instructions

(8)

Programme complet

;*************************************************************************

; Ce programme génère une horloge en RB0

; de fréquence 24 fois plus faible que celle du quartz. *

; il utilise la carte PicDem2Plus équipée d'un PIC16F877A *

;*************************************************************************

LIST P=16F877A ; directive qui définit le processeur utilisé

#include <P16F877A.INC> ; fichier de définition des constantes

;************************************************************************

; BITS DE CONFIGURATION

;*************************************************************************

__CONFIG _HS_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF

; _XS_OSC l'oscillateur est configuré en oscillateur à quartz haute fréquence

; _WDT_OFF le watchdog est désactivé

; _CP_OFF le code de protection de la mémoire programme est désactivé

; _CPD_OFF le code de protection de la mémoire EEPROM est désactivé

; _LVP_OFF la programmation basse tension est désactivée

; ces opérations sont nécessaires pour fonctionner en mode "debug"

;************************************************************************

; DEMARRAGE SUR RESET *

;************************************************************************

org 0x0 ; Adresse de départ après reset

(9)

Programme complet

;****************************************************************

; INITIALISATION *

;****************************************************************

; initialisation du PORTB en sortie (voir datasheet)

bcf STATUS, RP0

bcf STATUS, RP1 ; passage en banque 0 clrf PORTB ; RAZ des bascules D bsf STATUS, RP0 ; passage en banque 1 movlw b'00000000'

movwf TRISB ; PORTB en sortie

bcf STATUS, RP0 ; retour en banque 0

;****************************************************************

; PROGRAMME PRINCIPAL *

;****************************************************************

boucle

bsf PORTB,0 ; mise à 1 de la sortie

nop ; 2 temps morts pour compenser le saut nop

bcf PORTB,0 ; mise à 0 de la sortie goto boucle ; rebouclage

END ; directive signalant la fin du programme

;********************************************************************

(10)

Références

Documents relatifs

Emeria Hôtel Thalasso &amp; Spa**** Dinard : 106 chambres côté mer, 64 chambres côté jardin, 2 univers de soins, un espace cardio-training, 4 salles de réunion avec

Aucun message ne sera affiché, le dossier ne sera pas créé et non visible dans la fenêtre des conformités à l’adresse (Fermez la fenêtre de saisie pour saisir de nouveau

EN: The Electromagnetic Compatibility Directive (EMCD) and its amending Directives – DE: Richtlinie über elektromagnetische Verträglichkeit (EMCD) und ihre Änderungsrichtlinien

CENTRE COMMERCIAL DES TEMPLIERS 27140 GISORS... DU PDT WILSON

[r]

Ce sont les dispositifs de liaison entre les différents éléments d’un système de protection contre les chutes de hauteur (longe, harnais, point d’ancrage). Ils peuvent être

Liste des participants atelier régional ville et quartier durables - 5

Résumé des instructions sur des chaînes de caractères pour effectuer des opérations avec des opérandes se trouvant dans des locations mémoire. Instruction Mnémonique