DEUXIEME PARTIE : 1 INITIATION A LA PROGRAMMATION DU PROCESSEUR 6809 I- BUT : C
DEUXIEME PARTIE : 1 INITIATION A LA PROGRAMMATION DU PROCESSEUR 6809 I- BUT : Cette manipulation consiste à résoudre quelques exercices du µP 6809 ainsi que son exécution sur le Kit MC09. Informations générales sur le 6809 : 1-Les différents registres du processeur : Registres internes Rôle du registre Deux exemples d’instructions utilisant le registre Accumulateurs A,B Opérations arithmétiques et logiques et les manipulations de données sur 8 bits. *LDA #$01 *ADDB $1050 Accumulateurs D Opérations arithmétiques et logiques et les manipulations de données sur 16 bits, on peut obtenir le registre D en concaténant A et B . *LDD #$0FFF *ADDD #$01BF Registre X,Y Ils sont utilisés pour les modes d’adressage indexé lors de rangement de données en mémoire sous forme de table, ils ont une taille de 16 bits chacun. *LDX #$02FC LDA ,X+ STA ,X *LDB ,--X ADDB 05,X Registre S,U Ce sont deux pointeurs de pile qui sont utilisés pour gérer la sauvegarde des registres internes du µP lors des appels des sous-programme et des demandes d’interruptions, ils ont une taille de 16 bits. *LDU #$F021 *ADDU #$0000 Registre PC Compteur-Programme est un registre 16 bits qui contient l’adresse de la prochaine instruction à exécuter et *JMP $01C2 *BNE LOOP 2 s’incrémente automatiquement à chaque lecture d’un octet en mémoire à moins qu’un branchement Registre DP Pointeur de page: sa taille est de 8 bits. il permet de découper l'espace mémoire en 256 pages de 256 octets. Ce registre est utilisé pour l'adressage direct. *LDA #$0A TFRA ,DP Registre CCR Registre d'état CC : il permet à l'utilisateur de juger de la validité des traitements effectués par l'utilisateur. *CWAI #$01 *ANDCC #$01 2-Taille du bus d’adresse du µP 6809 est : 16 bits. La taille maximale de l’espace mémoire adressable par ce bus est : 216 octets =64 Ko. 3-la signification des 8 bits du registre CC : Registre d’état CC Bit E Bit F Bit H Bit I Bit N Bit Z Bit V Bit C indique, lorsqu'il est à 1, que tous les registres du 6809 ont été empilés, S'il et à 0 seuls les registres PC et CC ont été empilés. Autorise l'interruption FIRQ lorsqu'il est à 0. donne l'état de la retenue lors d'une opération entre le bit 3 et le bit 4. Autorise une interruption IRQ lorsqu'il est à 0. à 1 lorsque le résultat de l'opération précédente est négatif. à 1 lorsque le résultat de l'opération précédente est nul. indicateur de dépassement. Il est à 1 lorsque le résultat n'est pas juste en arithmétique signée. à 1 lorsque l'opération précédente est supérieure à 255. 4-Registre DP : sa définition a été faite au tableau de la question 1. 3 5-Les différents modes d’adressage : Le 6809 de MOTOROLA offre plusieurs modes d'adressage mémoire : 1. Adressage immédiat Avec ce mode d'adressage, l'un des opérandes est immédiatement présent dans l'octet, ou les octets, qui suivent le code objet opération. On spécifie qu'il s'agit d'un opérande immédiat en faisant précéder l'opérande du caractère dièze "#". 2. Adressage direct Cette forme d'adressage utilise le second octet de l'instruction pour identifier un opérande présent dans une page de 256 cellules de la mémoire. Le registre de page DP forme quant à lui l'octet de poids fort de l'adresse recherché. 3. Adressage indexé Cette forme d'adressage fait appel aux registres X, Y, U, ou S pour déterminer une adresse. Plusieurs formes syntaxique sont possibles : à déplacement nul : ldb ,X : charge dans B le contenu de l'adresse pointée par X à déplacement non nul sur 7 bits : sta $10,Y : place le contenu de A dans la case mémoire pointée par Y+$10 si le MSB du déplacement est égal à 1, le déplacement est négatif. Il faudra calculer le complément à 2. sta $FF,Y : place le contenu de A dans la case mémoire pointée par Y-$01 à déplacement sur 15 bits : ldx $1000,y : place dans X le contenu de l'adresse pointée par Y+$1000 à déplacement par accumulateur : sta b,x : place le contenu de A dans la case mémoire pointée par X+B seuls A, B ou D peuvent être utilisés. avec autoincrémentation ou autodécrémentation : dans ce cas de figure l'opération est réalisé puis, le registre d'index est incrémenté ou décrémenté. lda ,y++ :charge dans A le contenu de la case mémoire pointée par Y puis Y=Y+2 lda ,y+ : charge dans A le contenu de la case mémoire pointée par Y puis Y=Y+1 lda ,-U : charge dans A le contenu de la case mémoire pointée par U puis U=U-1 4 lda ,--U : charge dans A le contenu de la case mémoire pointée par U puis U=U-2 4. Adressage étendu Dans ce mode d'adressage, on combine les second et troisième octets de l'instruction en code objet pour former une adresse à laquelle se trouve la donnée utilisée comme opérande. 5. Adressage indirect Tous les adressages indirects mis à part les modes autoincrémentés ou autodécrémentés acceptent un mode d'adressage supplémentaire appelé mode indirect. Ce mode est également utilisé en adressage étendu. Ici, l'adresse mise en cause contient elle même une adresse à laquelle se trouve la donnéee. 6. Mode inhérent L'adressage inhérent est spécifié lorsque la nature de l'instruction rend évidents quels registres, indicateurs ou positions mémoires sont utilisés pour l'opérande. Exemple : MUL indique obligatoire la multiplication de A et de B avec la restitution du résultat dans le registre D. 7. Mode relatif Les instructions de branchement, BRANCH conditionnels ou inconditionnels, recourent à l'adressage relatif. On obtient des déplacements de +129 à -126. 8. Par registre Dans ce mode, le champ opérande de l'instruction n'est pas vide. Il contient le nom d'un ou des registres rentrant dans la définition de l'instruction. Exemple : TFR A,B transfère dans le registre B le contenu du registre A. 6-Calculs de déplacements positifs et négatifs dans un programme : II-EXERCICES : Exercice 1 : Adresse Code machine Etiquette Code mnémonique Mode d’adressag e Nbr. Octet Commentaire C.Opératio. C.Opérand . Opération Opérande 5 Déplacement=Adresse effective – (Adresse d’origine +2 ) $0000 86 12 LDA #$12 immédiat 2 A ← $12 $0002 C6 47 LDB #$47 immédiat 2 B ← $47 $0004 CC 12 47 LDD #$1247 immédiat 3 D ← $1247 $0007 8E 21 C7 LDX #$21C7 immédiat 3 X ← $21C7 $000A 18 8E D0 A1 LDY #$D0A1 immédiat 4 Y ← $D0A1 $000E CE 0014 LDU #$0014 immédiat 3 U ← $0014 $0010 10 CE FF01 LDS #$FF01 immédiat 4 S ← $FF01 $0013 86 B7 LDA #$B7 immédiat 2 A ← $B7 1F 8B TFR A,DP inherent 2 DP ← A $0016 $0018 3F SWI 1 Fin de programme Exercice 2 : 1- Adresse Code machine Etiquette Code mnémonique Mode d’adressage Nbr. Octet Commentaire C.Opératio. C.Opérand. Opération Opérande $0000 4F ___ CLRA ___ inherent 1 A ← $00 $0001 1F 8B TFR A,DP inherent 2 B ← A $0003 86 xy LDA #$xy immédiat 2 A ← $xy $0005 97 40 STA $40 direct 2 (DP):40 ← A $0007 86 uv LDA #$uv immédiat 2 A ← $uv $0009 97 41 STA $41 direct 2 (DP):41 ← A $000B 96 40 LDA $40 direct 2 A ← (DP):40 $000D 9B 41 ADDA $41 direct 2 A← (A)+(DP):41 $000F 97 42 STA $42 direct 2 (DP):42 ← A $0011 3F SWI inherent 1 Fin du programme 2- On a donné une valeur à $xy=$77 et $uv=$33 ,après on a exécuté le programme et on a constaté qu’il marche correctement. 3- Contenu des cases : Avant : A près : ($0040) = $FF ($0040) = $77 ($0041) = $FF ($0041) = $33 ($0042) = $FF ($0042) = $AA 4-La fonction réalisée par ce programme est l’addition entre deux cases ( $0040 et $0041) et le stockage du résultat dans la case mémoire $0042 . 5-Le programme précédent fait la somme de deux opérandes sur 8 bits : le résultat est limité entre -127et 128 et ne peut pas dépasser cette intervalle, c’est la seule limitation que présente ce programme. 6 6-On considère le programme assembleur donné dans le tableau suivant : Adresse Code machine Etiquette Code mnémonique Mode d’adressage Nbr. Octet Commentaire C.Opératio. C.Opérand. Opération Opérande $0000 0F 43 CLR $43 direct 2 (DP):$43← $00 $0002 4F ____ CLRA ____ inherent 1 A ← 00 $0003 1F 8B TFR A,DP inherent 2 DP ← A $0005 86 $xy LDA #$xy immédiat 2 A ← $xy $0007 97 40 STA $40 direct 2 (DP):40 ← A $0009 86 $uv LDA #$uv immédiat 2 A ← $uv $000B 97 41 STA $41 direct 2 (DP):41 ← A $000D 96 40 LDA $40 direct 2 A ← (DP):40 $000F 9B 41 ADDA $41 direct 2 A← (A)+(DP):41 $0011 24 01 BCC TOTO relatif 2 Branchement à TOTO si pas de retenue $0013 0C 43 INC $43 direct 2 Incrémenter la case mémoire ($0043) $0015 97 42 TOTO STA $42 Direct 2 (DP):42 ← A $0017 3F ____ SWI ____ inhérent 1 Fin uploads/s3/ tp-infoindus.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/L5v0MyOmmQnCv0Kvo7YWpWc1qhtb0UNev7gng1NFXr1UvKzhvgrOiLoOXxyTup7sfdbe4RU5aCYVRmvWadQb0g1T.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/62dZhLq4Fr7IFZoLEot3RI5oo3qkLT39iquF4Bld3d6wHqmA6gC6hP6V4mWMTzVQB0xuC4NlMzQtOKOhrxAeV1jk.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/0OtFIZvOLTWvnt1p0dfmPVQ5XokSFX77eXwHew9fxXo0sY0KLDxo15O9QRMFYBkkoLjvt1WDnRpTfo5UUnyGi0ow.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/4ovevCcZtQFMGdJ7NXTvzZNDNCQbBSS62kavOhjjUrjPXOhgAUBvZNcHwp4N8DUTkKvwVERsesjQg4YzmG41r6GY.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/s99P84seAIHLaXO67bCdcjd63RJENi4nWjuQ35986e2HdmYAlIFwILXAYKXq6dmuJCCciLGbxvWy10ymTwtHReEi.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/vdZecnJz1hCQSerVuIDekS6vsqNBdubDSN49NTrKHH842BGVlWfUonaDxQS09yPiLwJEFlWUiOSsEzLqc3VGN4HS.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/S82KVNhMBH0QQ4QVuX0pTBoRIsa1cTVTBvax5LdC0HpWDJ9RvoLHw82XM5bYw6bPRom3DV9Ou0ZR1qGxGZqnHOgU.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Q7x4hby9zWgO8O07IG7tnfk6biOiepMYMZEeRMmQqmScnfvZ1hLrFEqddwyelq9Rl8rVo2JcrBSVbQdFi8xLaOsj.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/B98s43iMX4qwLXFcdjQPitD9md2PqiQCS8tUuq0SLyAR7O5HmRKYYGy4akrGNLXH5lTI39g1uqhDOA8ZknfdJwMC.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ugdxRhoVdMJxvvqGRJ8APPvuOO0pdk74xq69sOmxbHTdlrgpSXPJQ5BoA8fdvRr1OKwz3YGsl2l4tESHEvmvoV8b.png)
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 06, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.5946MB