microprocess eur 68000
Post on 05-Apr-2018
217 Views
Preview:
TRANSCRIPT
-
7/31/2019 Microprocess Eur 68000
1/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
1/7
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 donn es sur 16 bis et unbus dadressage sur 23 bits, ce qui dtermine une rgion mmoire maximum de 8 Mega-octets1. La frquence delhorloge est de 10 Mega-hertz, ce qui correspond un cycle dhorloge de 100 ns. Notons que la plus petiteopration ncessite 4 cycles dhorloge.
Ltat du processeur est caractris par les fonctions codes FC0, FC1, FC2. Par ailleurs, on distinguera le modeutilisateur et superviseur.
Agencement de la mmoire
Types de donnes
bitsbytes 8 bits .B
words 16 bits .W
long words 32 bits .L
Registres internes
8 registres de donnes, 32 bits : D0 D7
Ces registres peuvent tre manipuls soit comme des bytes, soit comme des word, soit comme des long.
1 220bits = 1 Mega-octet
R / W : sens du transfert
horloge frquence 10 MHz
+Vcc
68000
bus de donnes bidirectionnel 16 bits : D0D15
bus dadresse unidirectionnel 23 bits : A1A23
UDS, LDS : extension dadresse
AS : validation dadresse
DTACK
halt, reset, berr : exceptions
IPL0, IPL1, IPL2 : 7 niveaux dinterruptions
-
7/31/2019 Microprocess Eur 68000
2/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
2/7
8 registres dadresses2, 32 bits : A0 A7et A7 bis
On peut manipuler des adresses longues (long) ou des adresses courtes (word). Notons que les adressesrelles du 68000 sont cods sur 24 bits, par consquent les 8 derniers bits dune adresse longue ne sont passignificatifs !Notons galement le rle particulier des deux registres dadresseA7et A7 bis, encore appel USP(user stack
pointer) et SSP (supervisor stack pointer). SP ouA7contient ladresse du pointeur de pile relatif au modecourant, cest--dire utilisateurou superviseur.
PC ou program counter
Il contient ladresse de la prochaine instruction excuter.
SR ou status register, et CCR ou condition code register
Registre 16 bits : SR au format word (16 bits) ou CCR au format byte (8 bits)Cest le registre dtat, qui comporte des bits indicateurs ouflags.
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 zero zro
N negative bit de poids fort ou de signe
C carry retenue
X extend retenue non signeV pverflows overflow sign
Pour un move, seulNetZsont affects mais pas Cet V. Pour une opration arithmtique N, Z, C, V sontaffects.
Prsentation du jeu dinstruction
On distingue des instructions de trois sortes : les transferts de donnes (ex. : move3), les oprations arithmtiques(ex. : add), et les tests / ruptures de squence (ex. : beq).
Un programme est une suite de code machine reprsentant des instructions (selon un codage bien dfini), etplac en mmoire. Les instructions peuvent avoir des longueurs variables (de un plusieurs mots 4). De ce fait,
les adresses de dbut dinstruction sont toujours paires.
Codage des instructions
Move
syntaxes : MOVE.B source , destinationMOVE.W source , destinationMOVE.L source , destination
2
physiquement, 9 registres, mais toujours 8 accessibles3 mnmonique de la normeMotorola4 1 mot = 16 bits
T - S - - I2 I1 I0 - - - X N Z V C
-
7/31/2019 Microprocess Eur 68000
3/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
3/7
LinstructionMOVEtransfert la source vers la destination, en crasant le contenu de cette dernire. Par dfaut, leformat de linstructionMOVEest .W.
Modes dadressage
adressage absolue
Ladresse effective est une constante, le plus souvent crite en hexadcimal comme par exemple $1000.
MOVE.W $1000 ,$2000
direct des registres : Dxou Ax
On opre directement sur les registres soit en lecture, soit en criture.
MOVE.B D0,$2000MOVE.W A0,A1MOVE.L $2000,D0
MOVE.L A1,$2000
immdiat : #constante
La source est la valeur dune constante immdiatement cite dans le code machine. Par dfaut, lesconstantes sont dcimales. Les constantes hexadcimales doivent tre prcdes du symbole $ et lesconstantes binaires du symbole %.
MOVE.L #$12345678,D0MOVE.B #%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 #$2000,A1MOVE.W (A1),D0 ; MOVE.W $2000 ,D0
On ne passe pas ladresse directement, mais on donne une rfrence cette adresse.
indirect post-incrment : (Ax)+
Ladresse effective est le contenu de ladresse Ax ; aprs excution de linstruction utilisant ce modedadressage, Ax est incrment de 1,2 ou 4 selon le format de linstruction .b, .w, ou .l.
MOVE.L #$2000,A1MOVE.B (A1)+ ,D1 ; A1! A1 + 1MOVE.W (A1)+ ,D1 ; A1! A1 + 2
On rappelle que les adresses doivent toujours tre paires ; attention, donc cette instruction :
MOVE.B (A1)+,D1
indirect pr-dcrment : - (Ax)
Ladresse effective est le contenu de ladresse Ax dcrmente de 1,2 ou 4 selon le format de linstruction.b, .w, ou .l.
MOVE.L #$2000,A1
-
7/31/2019 Microprocess Eur 68000
4/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
4/7
MOVE.W -(A1),D1 ; A1! A1 - 2
Ces deux derniers modes dadressage sont utiles pour le parcours des tableaux dans un sens ou dans lautre.
indirect avec dplacement : d16(Ax)
A la diffrence du mode dadressage indirect post-incrment ou pr-dcrment, ladressage indirect avecdplacement ne modifie pas ladresse de baseAx. Ladresse effective est la somme de (Ac) et de d16, undplacement signe sur 16 bits compris entre -17784 et +17783.
MOVE.L #$2000,A1MOVE.L 3(A1),D0 ; AE! $2000 + 3
indirect index avec dplacement : d8 (Ax, X)
Ladresse effective est calcule partir de ladresse de baseAx ajout dun dplacement sign sur 8 bits et dela valeur de lindexX(un registre de donne, un registre dadresse ou le PC). Ladresse de base nest pasmodifi par ce mode dadressage.
MOVE.L #$2000,A1MOVE.L #2,D5MOVE.W 0(A1,D5),D0 ; AE! $2000 + 2 + 0MOVE.W -1(A1,D5),D1 ; AE! $2000 + 2 - 1
Donnes mmoires
DS : data store
Rservation d'un espace mmoire.
tiquette DS.W 4
Cette instruction rserve 24 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 onaura les deux exemples suivants:
MOVE.L #tiquette,A0MOVE.W tiquette,D0
Il existe toutefois une exception cette rgle pour l'instructionLEA (load effective address) qui chargel'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
Instructions de branchement et de branchement conditionnel
JMP : jump
syntaxe : JMP AE , avecAEladresse effective en mode relatif, absolu, ou indirect.
JMP $1000
-
7/31/2019 Microprocess Eur 68000
5/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
5/7
BRA : branch always
syntaxes : BRA AE , avecAEladresse effective en mode indirect.BRA tiquette , avec tiquette qui dsigne une adresse symbolique.
dbut
BRA dbut
les instructions du type : BCC
syntaxe : BCCtiquette , avec CC le code dune condition et tiquette une adresse symbolique.
test de V V = 0 BVC overflow clear
V = 1 BVS overflow set
test de C C = 0 BCC carry clear
C = 1 BCS carry set
test de Z Z = 0 BEQ not equal Z = 1 BNE equal =
test de N N = 0 BPL plus > 0
N = 1 BMI minus < 0
On dispose encore de tests plus volus :
BF never true NOP
BT always true BRA
BGE greater or equal
BGT greater than
BHI high
BLE less or equalBLS low or same
BLT less than
TST
Cette instruction positionne les indicateurs.
TST.W $2000BEQ
Les branchements conditionnels ncessitent un positionnement pralable desflags, ce quipeut tre ralisautomatiquement par certaines instructions. Ex. :ADD, SUB
CMP
L'instruction de comparaison positionne lesflags relativement la soustraction de ladestination par lasource.
CMP D0,D1BPL tiquette ; branchement si d1 - d0 > 0
les instructions du type : DBCC
Syntaxe : DBCC Dx,tiquette
Attention! Le compteur Dx est limit 16 bits pour cette instruction.
-
7/31/2019 Microprocess Eur 68000
6/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
6/7
Test, dcrmentation et branchement: On sort en passant l'instruction suivante si le compteur se termineou si la condition cc est vraie, sinon on effectue le branchement sur l'tiquette.
Cette instruction est particulirement adapte pour raliser des boucles utilisant un compteur. On donnel'exemple suivant du test des 4 premiers bits du PADR. On sort si un bit est zro, ou si aucun n'est zro.
MOVE.W #3,D1repeter BTST.B D1,PADR
DBEQ D1,repeterCMP.W #-1,D1 ; test pour savoir comment on est sortit
BEQ compteur_puise
Assembleur
On distingue lassembleuret 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 composantnos 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 + 8diodes, 8 afficheurs 7 segments, un clavier hexadcimal, un CAN. En outre, on dispose d'uneRAMde
k1288 , et d'uneROMde k328 associ au moniteuret 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 relRTC.
Utilisation du kit
Ouvrir un shell. Commencer par se reconnecter sur le serveur matho et lancer le moniteur au moyen de lacommande 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 assembleurgrce la commande : asm68k fichier -l > fichier.l.
non
oui non
oui
CC
Dcrmentation de Dx
Dx = -1
Instruction suivante branchement
tiquette
-
7/31/2019 Microprocess Eur 68000
7/7
Esnard Aurlien Cours de Microprocesseur ENSERB Informatique 1re anne
7/7
Puis on effectue l'dition de lien partir du fichier de commande main.cmdpar exemple: lnk68k -F S -cmain.cmd -m > main.m.
Si tout se passe bien cett dernire opration fournit le fichier main.x qui est un excutable au formatMotorola.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
- 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
pas pas
- GO 1000 : excution du programme partir de l'adresse $1000- ST : pas pas (step)- RE : affiche tous les registres- DB : display all break points- CB : clear all break points
- B0 = $1000 : cration d'un point d'arrt l'adresse $1000- B0 : efface le point d'arrt B0
plantage
Le resetne rinitialise jamais la mmoire ! Il permet tout au plus d'arrter le programme en cours. Dans le casd'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
Carte manip. PIT 68230
Prsentation du PIT 68230
schma
Led
Afficheurs 7 segments
Clavier
Exceptions & Interruptions
top related