Microprocess Eur 68000

Embed Size (px)

Citation preview

  • 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