Professional Documents
Culture Documents
Cours de Microprocesseur
Cours de Microprocesseur
Prsentation du 68000 de Motorola
Le microprocesseur que nous tudions est le 68000 de Motorola. Bien que dsuet aujourdhui,
larchitecture de ce composant et sa programmation reste une rfrence dans ltude des microprocesseurs.
Le 68000 est un composant lectronique de 64 broches, qui possde un bus de donnes sur 16 bis et un
bus dadressage sur 23 bits, ce qui dtermine une rgion mmoire maximum de 8 Mega-octets1. La frquence de
lhorloge est de 10 Mega-hertz, ce qui correspond un cycle dhorloge de 100 ns. Notons que la plus petite
opration ncessite 4 cycles dhorloge.
R / W : sens du transfert
+Vcc
68000
AS : validation dadresse
DTACK
halt, reset, berr : exceptions
Ltat du processeur est caractris par les fonctions codes FC0, FC1, FC2. Par ailleurs, on distinguera le mode
utilisateur et superviseur.
Agencement de la mmoire
Types de donnes
bits
bytes
words
long words
8 bits
16 bits
32 bits
.B
.W
.L
Registres internes
1/7
Esnard Aurlien
Cours de Microprocesseur
PC ou program counter
Il contient ladresse de la prochaine instruction excuter.
I2
I1
I0
Bits systmes:
- T : mode trace
- S : mode superviseur
- I2, I1, I0 : masque d'interruptions
Bits utilisateurs (CCR):
- X, N, Z, V, C : indicateurs arithmtiques qui peuvent avoir des sens diffrents selon les oprations
Z
N
C
X
V
zero
negative
carry
extend
pverflows
zro
bit de poids fort ou de signe
retenue
retenue non signe
overflow sign
Pour un move, seul N et Z sont affects mais pas C et V. Pour une opration arithmtique N, Z, C, V sont
affects.
Move
syntaxes :
MOVE.B
MOVE.W
MOVE.L
source , destination
source , destination
source , destination
2/7
Esnard Aurlien
Cours de Microprocesseur
Linstruction MOVE transfert la source vers la destination, en crasant le contenu de cette dernire. Par dfaut, le
format de linstruction MOVE est .W.
Modes dadressage
adressage absolue
Ladresse effective est une constante, le plus souvent crite en hexadcimal comme par exemple $1000.
MOVE.W
$1000 ,$2000
D0 ,$2000
A0 ,A1
$2000,D0
A1,$2000
immdiat : #constante
La source est la valeur dune constante immdiatement cite dans le code machine. Par dfaut, les
constantes sont dcimales. Les constantes hexadcimales doivent tre prcdes du symbole $ et les
constantes binaires du symbole %.
MOVE.L
MOVE.B
#$12345678,D0
#%11110000,D0
Dans cette dernire instructions, les 24 derniers bits du registres ne sont pas affects.
indirect : (Ax)
Ladresse effective est le contenue du registre dadresse Ax.
MOVE.L
MOVE.W
#$2000,A1
(A1),D0
; MOVE.W
$2000 ,D0
On ne passe pas ladresse directement, mais on donne une rfrence cette adresse.
#$2000,A1
(A1)+ ,D1
(A1)+ ,D1
; A1 A1 + 1
; A1 A1 + 2
On rappelle que les adresses doivent toujours tre paires ; attention, donc cette instruction :
MOVE.B
(A1)+,D1
#$2000,A1
3/7
Esnard Aurlien
Cours de Microprocesseur
MOVE.W
; A1 A1 - 2
-(A1),D1
Ces deux derniers modes dadressage sont utiles pour le parcours des tableaux dans un sens ou dans lautre.
#$2000,A1
3(A1),D0
; AE $2000 + 3
#$2000,A1
#2,D5
0(A1,D5),D0
-1(A1,D5),D1
; AE $2000 + 2 + 0
; AE $2000 + 2 - 1
Donnes mmoires
DS : data store
Rservation d'un espace mmoire.
tiquette
DS.W
Cette instruction rserve 4 2 octets, auquel on pourra faire rfrence avec tiquette.
On rappelle que #tiquette renvoie l'adresse de l'tiquette, tandis que tiquette dsigne son contenu. Ainsi on
aura les deux exemples suivants:
MOVE.L
MOVE.W
#tiquette,A0
tiquette,D0
Il existe toutefois une exception cette rgle pour l'instruction LEA (load effective address) qui charge
l'adresse d'une tiquette immdiatement, comme suit :
LEA.L
tiquette,A0
DC : define constant
Dfinition d'une constante au format byte, word, ou long.
tiquette
DC.W
1000
JMP : jump
syntaxe :
JMP
4/7
Esnard Aurlien
Cours de Microprocesseur
dbut
BRA
dbut
BCC tiquette , avec CC le code dune condition et tiquette une adresse symbolique.
test de V
test de C
test de Z
test de N
V=0
V=1
C=0
C=1
Z=0
Z=1
N=0
N=1
BVC
BVS
BCC
BCS
BEQ
BNE
BPL
BMI
overflow clear
overflow set
carry clear
carry set
not equal
equal
plus
minus
BF
BT
BGE
BGT
BHI
BLE
BLS
BLT
never true
always true
greater or equal
greater than
high
less or equal
low or same
less than
=
>0
<0
NOP
BRA
TST
Cette instruction positionne les indicateurs.
TST.W
BEQ
$2000
Les branchements conditionnels ncessitent un positionnement pralable des flags, ce qui peut tre ralis
automatiquement par certaines instructions. Ex. : ADD, SUB
CMP
L'instruction de comparaison positionne les flags relativement la soustraction de la destination par la
source.
D0,D1
tiquette
CMP
BPL
; branchement si d1 - d0 > 0
DBCC
Dx,tiquette
5/7
Esnard Aurlien
Cours de Microprocesseur
oui
non
CC
Dcrmentation de Dx
oui
Dx = -1
non
branchement
tiquette
Instruction suivante
#3,D1
D1,PADR
D1,repeter
#-1,D1
; test pour savoir comment on est sortit
compteur_puise
Assembleur
On distingue lassembleur et le cross-assembleur. Lassembleur opre directement sur la machine (sur le 68000),
tandis que le cross-assembleur opre sur une autre machine. Nous utiliserons un cross-assembleur, en composant
nos programmes sur les TX, ce qui a lavantage dtre plus souple.
Description du kit
Le kit se compose d'une carte CPU 68010 (10 MgHz) et de la carte manip. comprenant 8 interrupteurs + 8
diodes, 8 afficheurs 7 segments, un clavier hexadcimal, un CAN. En outre, on dispose d'une RAM de
8 128k , et d'une ROM de 8 32k associ au moniteur et permettant d'effectuer des oprations de debugage.
On dispose galement de l'interface // 68230 assurant la liaison avec la carte manip. et ralisant la fonction timer,
d'une interface srie 68564 assurant la liaison avec le TX, et de l'horloge temps rel RTC.
Utilisation du kit
Ouvrir un shell. Commencer par se reconnecter sur le serveur matho et lancer le moniteur au moyen de la
commande tkit &.
A partir d'un diteur, on compose des fichiers assembleur (extension .s) et un fichier de commande (extension
.cmd) dirigeant l'dition de lien.
Pour la compilation, on commence par gnrer les fichiers objets (extension .o) partir des fichiers assembleur
grce la commande : asm68k fichier -l > fichier.l.
6/7
Esnard Aurlien
Cours de Microprocesseur
Puis on effectue l'dition de lien partir du fichier de commande main.cmd par exemple: lnk68k -F S -c
main.cmd -m > main.m.
Si tout se passe bien cett dernire opration fournit le fichier main.x qui est un excutable au format Motorola.
On le charge simplement dans la mmoire du kit au moyen de la commande lkit main.x.
L'excution s'effectue par la commande GO starting_adress sous le moniteur.
Assembleur ligne
instructions
-
pas pas
-
HE : help
DU 1000 1030 : visualiser la zone mmoire entre $1000 et $1030 (dump)
FI 1000 1030 41: remplissage de la zone mmoire avec 41(fill)
TS : time set
DT : display time
OP 1000 : lecture, criture (sous-fonction : = , -, et Q)
USP : user status pointer
SSP : supervisor status pointer
SR : status register
PC = 1000 : modification directe des registres
AS 1000 : assembleur en ligne (sous-fonction : et Q)
DI 1000 1030 : dsassemble le code machine partir de l'adresse $1000 jusqu' $1030
plantage
Le reset ne rinitialise jamais la mmoire ! Il permet tout au plus d'arrter le programme en cours. Dans le cas
d'une boucle infinie, on peut reprendre la main, au moyen de la commande C-C, puis MCR>ABO.
Programme dassemblage
Les sous-programmes
exemple de la tempo
Afficheurs 7 segments
Clavier
7/7