Professional Documents
Culture Documents
Pointeur de pile
9 Instructions manipulant les piles
9 Mouvement du pointeur de la pile
9 Contenu de la pile
9 Ordres
Od
d'empilement
d'
il
t ett de
d dpilement.
d il
t
1
L langage
Le
l
assembleur
bl
permett d
dutiliser
tili des
d mnmoniques
i
pour remplacer
l
les
l
codes machines difficiles interprter.
Les langages volus bnficient de librairies de fonctions rendant la programmation
plus simple dvelopper.
NOM
EXEMPLE DE
PROGRAMME
LANGAGE
MACHINE
En binaire:
10100101
01100000
01100101
01100001
10000101
01100010
En hexadcimal:
A5
60
65
61
85
62
LANGAGE
ASSEMBLEUR
LDA $60
ADC $61
STA $62
PROGRAMME DE
TRADUCTION
EN MACHINE
REMARQUES
Hexadecimal Loader
programme objet
- le programme Hexadecimal Loader fait en
gnral partie dd'un
un programme appel
MONITEUR. ses fonctions: examiner et
modifier le contenu des mmoires et des
registres; il permet l'excution partielle ou
totale du programme
ASSEMBLEUR
- accepte les mnmoniques
- les traduit en binaire
- les place gnralement dans un
fichier
LANGAGE DE
HAUT NIVEAU
- Basic
-C
- Pascal
- ...
En BASIC:
PRINT Allo N=PEEK(96)
POKE 98,N END
INTERPRETEUR
- traduit et excute le programme
ligne par ligne.
COMPILATEUR:
fonction
instruction
1000 0110
0101 1010
1011 0111
0000 0001
0000 0000
0011 1111
opcode
oprande
opcode
oprande
oprande
opcode
1re instruction
2me instruction
3me instruction
Opcode
Oprande
86 5A
B7 01 00
LDA
STA
SWI
#$5A
$0100
1re instruction
2me instruction
3me instruction
Forms Op
LD
LDA
LDB
Addressing Modes
Direct Indexed Extended Inherent
# Op
# Op
# Op
# Op
# Description H N Z V C
86 2 2 96 4 2 A6 4+ 2+ B6 5 3
C6 2 2 D6 4 2 E6 4+ 2+ F6 5 3
5 3 2 1 0
M -> A
M -> B
0
0
si la frquence du crystal du microprocesseur 6809 vaut 4 Mhz, alors la frquence dhorloge (E ou Q) vaut:
Frq. de E = Frq. du crystal / 4 = 1 Mhz
La dure dun cycle machine est gale la priode de lhorloge (E ou Q) et vaut:
Priode de E = 1 / Frq.
Frq de E = 1s
6
Pour une instruction durant 5 cycles, le temps dexcution est donc 5 fois le temps dun
cycle machine,
machine ccest--dire
est dire 5 s
II.3.1. Boucle de dlai
CODE
MACHINE
86 05
4A
26 FD
39
ETIQUETTE
ENCORE
OPCODE
OPRANDE
LDA
DECA
BNE
RTS
#5
ENCORE
NBR. DE
CYCLES
2
2
3
5
CODE
MACHINE
TIQUETTE
MNMONIQUE
Opration
Oprande
ORG
0200
$0200
adresse du prog.
$A5
A5
DONNEE
PORTB
EQU
$6002
d l i de
dclaration
d la
l constante PORTB
0201
B6 02 00
DEBUT
LDA
DONNEE
0204
B7 60 02
STA
PORTB
0207
7E 02 01
JMP
DEBUT
0200
DB
COMMENTAIRES
END
ADRESSE:
CODE MACHINE:
TIQUETTE:
MNMONIQUE:
COMMENTAIRE:
; place
p
la valeur $6000 dans le registre
g
X
; fait un ou logique entre le reg.A et la valeur $80. Rsultat dans A
Ce mode est utilis pour lire ou crire une donne dans la mmoire ou sur une
entre/sortie.
Exemples
LDA $6000
ANDA $00FF
STA PORTB
II 5 3 Mode d'adressage
II.5.3.
d adressage inhrent
Ce mode d'adressage se caractrise par le fait qu'il n'utilise pas d'oprandes.
c..d
d
A
Aucun
appell une case mmoire
i nest
t ncessaire
i pour effectuer
ff t
la
l fonction
f ti
demande.
Le CPU sait qque le traitement s'effectue directement sur le(s)
( ) registre(s).
g
()
Exemples
CLRA ;
LSLB
;
RTS
;
SWI
Cet octet manquant est remplac par le registre de page direct nomm DP.
DP Pour
former l'adresse effective, le CPU va combiner le registre DP avec l'oprande.
E
Exemples
l
LDA $02 ;
Exemples
STA,X
;
LEAX 1,X ;
LDB 5,Y
,
;
12
i
temporairement des informations.
N.B.
Rq.
13
Rq.
La pile U n'est jamais utilise par le systme lors d'un appel une sous-routine.
Cette fonction est rserve la pile S.
part cette diffrence, les deux pointeurs de pile fonctionnent de la mme faon
que les registres LIFO (last in first out). La donne pousse en dernier doit tre
retire
ti en premier.
i
ETIQUETTE
DEBUT
JOB1
MNEMONIQUE
BSR JOB1
SWI
RTS
14
AVANT
XX<-- S
XX
XX
XX
PENDANT
XX
02
10 <-- S
XX
APRES
XX <-- S
02
10
XX
Rq.
Le pointeur de pile se dplace vers les adresses basses pour une instruction push et
vers les adresses hautes pour un pull
15