info:prog:ass6800

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
info:prog:ass6800 [2024/10/31 10:30] philinfo:prog:ass6800 [2024/11/14 15:19] (Version actuelle) phil
Ligne 2: Ligne 2:
  
 ===== Programmer en assembleur 6800 - 6811 ===== ===== Programmer en assembleur 6800 - 6811 =====
-[Mise à jour le : 31/10/2024]+[Mise à jour le : 14/11/2024]
  
   * **Ressources**   * **Ressources**
Ligne 9: Ligne 9:
     * **A télécharger** si travail maison     * **A télécharger** si travail maison
       * Logiciel : <html><a href="https://webge.fr/doc/logiciels/6800IDE.zip" target="_blank">simulateur SDK6800/6811</a></html>       * Logiciel : <html><a href="https://webge.fr/doc/logiciels/6800IDE.zip" target="_blank">simulateur SDK6800/6811</a></html>
-      * <html><a href="#" target="_blank">Document réponse</a></html> du TP+      * <html><a href="https://webge.direct.quickconnect.to:5001/ns/sharing/Ds7zI" target="_blank">Document réponse</a></html> du TP
  
 <callout type="default" title="Mots-clés" icon="fa fa-wrench">Adresse, donnée, instruction machine, mnémonique, opcode, opérande, directive d’assemblage, mode d’adressage, assembleur, variable, constante, opération symbolique.</callout> <callout type="default" title="Mots-clés" icon="fa fa-wrench">Adresse, donnée, instruction machine, mnémonique, opcode, opérande, directive d’assemblage, mode d’adressage, assembleur, variable, constante, opération symbolique.</callout>
Ligne 28: Ligne 28:
   * **Registre pointeur de pile** \\ Lorsqu'une fonction est appelée, le <html><a href="https://thecodest.co/fr/dictionnaire/pointeur-de-pile/" target="_blank">pointeur de pile</a></html> est utilisé pour allouer de l'espace sur la pile pour les variables locales de la fonction et pour stocker l'adresse de retour.   * **Registre pointeur de pile** \\ Lorsqu'une fonction est appelée, le <html><a href="https://thecodest.co/fr/dictionnaire/pointeur-de-pile/" target="_blank">pointeur de pile</a></html> est utilisé pour allouer de l'espace sur la pile pour les variables locales de la fonction et pour stocker l'adresse de retour.
 {{ :info:prog:flagregister.png?nolink|}} {{ :info:prog:flagregister.png?nolink|}}
-  * **Le registre d'état ** \\ Le registre d'état, ou registre de drapeaux (flags register), est un ensemble de bits représentant des drapeaux (flags) au sein d'un processeur. Le MC6800 possède six drapeaux.+  * **Le registre d'état ** \\ Le registre d'état, ou registre de drapeaux (flags register), est un ensemble de bits représentant des drapeaux (flags) au sein d'un processeur. Ils sont utilisés par les instructions de rupture de séquence telles que : jmp, bra, beq, bne, bcc, bcs, etc. \\ Le MC6800 possède six drapeaux.
     * **N** : passe à 1 lorsque le résultat d'une opération est négatif.     * **N** : passe à 1 lorsque le résultat d'une opération est négatif.
     * **Z** : passe à 1 lorsque le résultat d'une opération est nul.     * **Z** : passe à 1 lorsque le résultat d'une opération est nul.
Ligne 34: Ligne 34:
     * **C** : passe à 1 lorsque le résultat d'une opération est > 255.     * **C** : passe à 1 lorsque le résultat d'une opération est > 255.
     * **H** : donne l'état de la retenue lors d'une opération entre le bit3 et le bit4.     * **H** : donne l'état de la retenue lors d'une opération entre le bit3 et le bit4.
-    * **I** : autorise une interruption IRQ lorsqu'il est à 0.+    * **I** : autorise une interruption IRQ lorsqu'il est à 0. 
 \\ \\
  
Ligne 82: Ligne 82:
  
   -  **Fixer la position des variables dans la mémoire** avec la directive **.org** \\ ☛ **Fixez** la position de la zone des variables à partir de l’adresse **20**<sub>16</sub> comme ci-dessous. Le symbole **$** signifie que la valeur qui suit est en **hexadécimal** (base 16). {{ :info:prog:prog1a.png?nolink |}} \\   -  **Fixer la position des variables dans la mémoire** avec la directive **.org** \\ ☛ **Fixez** la position de la zone des variables à partir de l’adresse **20**<sub>16</sub> comme ci-dessous. Le symbole **$** signifie que la valeur qui suit est en **hexadécimal** (base 16). {{ :info:prog:prog1a.png?nolink |}} \\
-  - **Déclarer et initialiser des variables** \\ La position des variables étant fixée, vous allez les **identifier** à l'aide d'une **étiquette**, les **déclarer** à l'aide de la directive **.byte** et les **initialiser** en leur affectant une valeur. \\ ☛ **Complétez** le code source comme ci-dessous. Placez **v2** avec la valeur **80** puis  **v3** avec la valeur **0** sous v1. **Sauvegarder** le code source sous le nom **//add.asm//** sur le serveur (voir prof).+  - **Déclarer et initialiser des variables** \\ La position des variables étant fixée, vous allez les **identifier** à l'aide d'une **étiquette**, les **déclarer** à l'aide de la directive **.byte** et les **initialiser** en leur affectant une valeur. \\ ☛ **Complétez** le code source comme ci-dessous. Placez **v2** avec la valeur **80** puis  **v3** avec la valeur **0** sous v1. **Sauvegarder** le code source sous le nom **//add.asm//** sur le serveur dans **<color #ed1c24>home/TP/TP0_SDK68xx</color>**.
 {{ :info:prog:prog1b.png?nolink |}} {{ :info:prog:prog1b.png?nolink |}}
 {{ :info:prog:etiquette.png?nolink&200|}} {{ :info:prog:etiquette.png?nolink&200|}}
Ligne 94: Ligne 94:
 \\ \\
  
-  * ** ÉTAPE 3 - Assembler le code source ** \\ \\ Le code source écrit dans l'étape 2 n'a pas encore été assemblé. La mémoire est "vide" comme dans l'exemple ci-dessous. \\ \\ {{ :info:prog:memvide.png?nolink |}} \\ Cliquez sur le bouton Step pour effectuer l'assemblage. La mémoire doit se remplir comme ci-dessous. \\ \\ {{ :info:prog:code1.png?nolink |}} \\+  * ** ÉTAPE 3 - Assembler le code source ** \\ Le code source écrit dans l'étape 2 n'a pas encore été assemblé. La mémoire est "vide" comme dans l'exemple ci-dessous. \\ \\ {{ :info:prog:memvide.png?nolink |}} \\ Cliquez sur le bouton **Step** pour effectuer l'assemblage. La mémoire doit se remplir comme ci-dessous. \\ \\ {{ :info:prog:code1.png?nolink |}} \\
  
   * ** ÉTAPE 4 - Tester le programme en mode pas à pas**   * ** ÉTAPE 4 - Tester le programme en mode pas à pas**
     * Documentation "<html><a href="https://webge.fr/doc/1nsi/tp/Ressource_Doc_SDK6800_6811.pdf" target="_blank">Simulateur 6800</a></html>".     * Documentation "<html><a href="https://webge.fr/doc/1nsi/tp/Ressource_Doc_SDK6800_6811.pdf" target="_blank">Simulateur 6800</a></html>".
  
-<callout type="warning" title="Travail demandé" icon="fa fa-user-o" color="red">Demandez le document réponse du TP. (voir prof)</callout> +<callout type="warning" title="Travail demandé" icon="fa fa-user-o" color="red">Comlpétez le document réponse du TP. (voir prof)</callout> 
  • info/prog/ass6800.1730367018.txt.gz
  • Dernière modification : 2024/10/31 10:30
  • de phil