exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]

  • Upload
    youssef

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

  • 8/19/2019 exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]

    1/3

    IFT249 Page 1 Hiver 2006

    IFT249 - Programmation système

    Hiver 2006

    CHAPITRE 3

    Solution des exercices

    Exercice 1

    Supposons que l'adresse symbolique translatable A d'un programme soit traduite par

    l'assembleur en une adresse numérique dont la valeur est 6A4016. Supposons aussi que le

     programme utilise une librairie dont la taille est 451 octets et que l'éditeur de liens place

    cette librairie avant le programme dans le module chargeable. Enfin supposons que le

    chargeur place le programme en mémoire principale à l'adresse 100016. Quelle sera la

    valeur de l'adresse correspondant à celle de A lors de l'éxécution du programme si la

    longueur des instructions est d'un mot de quatre octets, les mots devant être alignés.

    a) adresse_numérique(A) dans le code objet = 6A4016 

     b) adresse_numérique(A) dans le module chargeable = 451 + 6A4016 , mais le

     programme doit être aligné sur une frontière de mot (4 octets) ==> 452 + 6A4016 =

    1C416 + 6A4016 = 6C0416 

    c) adresse_numérique(A) dans le processus = 100016 + 6C0416 = 7C0416 

  • 8/19/2019 exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]

    2/3

    IFT249 Page 2 Hiver 2006

    Exercice 2

    En utilisant la figure ci-après, donnez le contenu du registre r3 après l'éxécution de chacune

    des instructions ou séquences d'instructions suivantes,  prises individuellement. Le format

    générique de l'instruction ADD sera:

    add src1,scr2,dst ! dst = scr1 + scr2

    Le mode d'adressage s'applique au second opérande.

    a) add r1,r2,r3 ! mode registre

     b) add r1,r2(r1),r3 ! mode indexé

    c) add r1,@r2,r3 ! mode registre différé

    d) add r1,@#adr ,r3 ! mode direct avec adr = 100016 

    e) add r1,#10,r3 ! mode immédiat

    f) add r1,@adr ,r3 ! mode indirect avec adr = 101416 

    g) add r1,(r0)+,r3 ! mode auto-incrément

    add r3,(r0)+,r3

    h) add r3,-(r2),r3 ! mode auto-décrément

    add r3,-(r2),r3i) add r1,@r2(12),r3 ! mode indexé différé

     j) add r1,@(r0)+,r3 ! mode auto-incrément différé

    add r3,@(r0)+,r3

    Les valeurs ci-après sont exprimées en hexadécimal.

  • 8/19/2019 exercice corrigée les modes d'adresse [ assembleur motorola 6809 ]

    3/3

    IFT249 Page 3 Hiver 2006

    r0 1014 1000 100Cr1 4 1004 60

    r2 1008 1008 3F3

    r3 C 100C 80r4 1010 20

    1014 

    1004

      1018 1018

      Registres Mémoire

     

    Les instructions n'ont pas d'effet entre elles.

    Toutes les valeurs sont exprimées en hexadécimal.

    a) r3 = 4 + 1008 = 100C

     b) r3 = 4 + 80 = 84 r2+r1 = 100C et [100C] = 80

    c) r3 = 4 + 3F3 = 3F7 r2 = 1008 et [1008] = 3F3

    d) r3 = 4 + 100C = 1010 car [1000] = 100C

    e) r3 = 4 + A = Ef) r3 = 4 + 60 = 64 car [1014] = 1004 et [1004] = 60

    g) r3 = 4 + 1004 = 1008 car r0 = 1014 et [1014] = 1004,

     puis r0 = 1014 + 4 = 1018

    r3 = 1008 + 1018 = 2020 car r0 = 1018 et [1018] = 1018,

     puis r0 = 1018 + 4 = 101C

    h) r3 = C + 60 = 6C car r2 = 1008 - 4 = 1004 et [1004] = 60

    r3 = 6C + 100C = 1078 car r2 = 1004 - 4 = 1000 et [1000] = 100C

    i) r3 = 4 + 60 = 64 car r2 = 1008, 1008 + C =1014, [1014] = 1004

    et [1004] = 60

     j) r3 = 4 + 60 = 64 car r0 = 1014 , [1014] = 1004 et [1004] = 60

     puis r0 = 1014 + 4 = 1018

    r3 = 64 + 1018 = 107C car r0 = 1018, [1018] = 1018 et [1018] = 1018,

     puis r0 = 1018 + 4 = 101C