Pl2 ANNEXE.DOC/fr

From Atari Wiki
Revision as of 20:05, 17 December 2023 by Olivier.jan (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
            
                            ---------------------
                                   ANNEXE 

                            ---------------------



                         *** LES DESASSEMBLEURS ***  
                         --------------------------

   Pour rester très simple, on peut dire qu'un désassembleur a 
   exactement la fonction contraire d'un assembleur:
   L'assembleur code les instructions de votre programme en binaire
   et le désassembleur lit les codes binaire, les reconnait, et les
   traduits pour vous donner finalement le LISTING du programme.

   Comme cette opération est assez délicate, il se peut qu'il n'arrive
   pas à traduire tous les codes qu'il rencontre ...

   Sur la plupart des désassembleurs, il est possible d'obtenir soit
   le désassemblage d'un programme en CODE ASCII (LISTING) soit un
   désassemblage en CODE HEXA (Dans ce cas,il y a rarement des erreurs
   dans le décodage du programme)
 
   Réfèrez vous à la notice de votre ASSEMBLEUR pour en savoir plus, la
   pluspart des assembleurs sont livrés avec une DESASSEMBLEUR...


                          *** LES DEBUGGERS ***   
                          ---------------------

   Un DEBUGGER est un utilitaire qui vous sera par la suite indispens-
   sable, quand vous écrirez des programmes d'une longue taille.
   Comme sont nom l'indique, il permet de chercher le BUG (Parasite,
   erreur) qui fait planter votre programme...
   Il resemble un peu à un désassembleur, mais son plus grand intérrèt
   et qu'il permet de visualiser le contenu des registre,du PC,du SR...

   Cet utilitaire accompagne souvent un ASSEMBLEUR, et il est assez
   spécifique...
   Je ne pourrais donc pas vous en parler plus longuement, il suffira
   de vous réfèrer à la notice de votre ASSEMBLEUR...

   'SP' sera traduit par A7 ...


NB: Un débugger fonctionne souvent en MODE TRACE.
--- Ce mode est activé par la mise à 1 du bit T de SR.
    Le MODE TRACE dirige l'exécution d'un programme d'exception dont 
    l'adresse se trouve dans le 29°ème VECTEUR D'EXCEPTION et qui 
    s'exécute à chaque instruction décodée par le 68000.

    Pour mettre une de nos routine à la place de ce programme d'exception,
    il suffit de changer l'adresse que contient le vecteur d'exception qui
    controle le mode trace.

    Pour cela, il faut:

    .Passer en MODE SUPERVISEUR pour pouvoir changer la valeur 
     du vecteur d'exception et activer le bit T de SR  
    .Déposer l'adresse de la nouvelle routine dans le vecteur d'exception
     (Avec MOVE.L   #ADDRESSE,$24) du mode trace
    .Passer en mode trace par activation du bit T de SR (Par exemple avec
     ORI.w   #%1000000000000000,SR)
    
    La routine elle même ne devra pas modifier SP (Ou alors le reposi-
    tionner),car à la fin de celle-ci, on devra mettre un RTE:
    Le RTE va dépiler le PC pour retourner au programme principal:
    Changer SP entrainerait une mauvaise restauration du PC sauvé sur
    la pile système...


                         *** LA MEMOIRE DES ST ***
                         -------------------------

  Voilà la structure de la mémoire ROM et RAM des ST:

 
     ADRESSES  :  CONTENU
     --------------------
     $0000000  :  SP après un RESET
     $0000004  :  PC après un RESET
        à
     $0000008
        de    
     $00003FF  :  Les VECTEURS d'EXCEPTION
        à
     $0000400  :  Les VARIABLES SYSTEME
        à
     $00007FF   
        de  
     $001FFFF  :  La RAM
        à  
     $007FFFF  fin de la RAM pour les 520 ST
        à
     $00FFFFF  fin de la RAM pour les 1040 ST
        à
     $01FFFFF  fin de la RAM pour les MEGA 2 ST
        en
     $0FA0000  :  début ROM de 128 Ko 
        en
     $0FEFFFF  :  ROM de 192 Ko du système d'exploitation
        en
     $0FF8000  :  Registres internes
        en
     $0FF8200  :  Registres vidéo
        en
     $0FF8600  :  Registres DMA et FCD   (Disk)
        en
     $0FF8800  :  Registres AY3-8910  (sons)
        en
     $0FFFA00  :  Registres MFP  (Voir chapitre précédent)
        en
     $0FFFC00  :  Registres des ACIA (Clavier et Midi)
                 

      

                              ----------------
    
    
    Voilà, cette initiation se termine ici, il ne me reste plus qu'à
    vous remercier pour votre collaboration.
    (Et à vous féliciter pour la bonne idée que vous avez eu en 
    voulant vous mettre à l'assembleur...)

    Vous pensez bien que la programmation en assembleur ne se termine
    pas ici, au contraire,cette initiation n'avait que pour but de vous 
    apprendre les bases de la programmation en 68000.

    C'est à vous maintenant d'explorer le reste de ce langage aux capa-
    cités fantastique... 
    Ma mission se termine ici ! (OHHH GOD!)      :SALUT !


    L'auteur:           PIECHOCKI  Laurent
    ---------           8,Impasse Bellevue
                        57980  TENTELING



    Remerciements:

    Merci à Vincent et Dominique pour avoir testé cette initiation en 
    avant première et pour l'aide qu'ils m'ont apporté.
    (Surtout pour leurs suggestions et leurs approbations...)    

    Remerciements à THOMSON EFCIS pour la documentation sur le 68000
 
    Remerciements à FREDERIK pour ses aides précieuses...
                      
        

                           

Back to ASM_Tutorial