Exécution d ’un programme en 6809: Présentation du programme Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal Introduction FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme
Mémoire programme Mémoire données Le microprocesseur Exécution d ’un programme en 6809:le programme en langage assembleur est codée en mémoire par des valeurs hexadécimales Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal A B X Y S U PC FE00 Z (Zéro) N (Négatif) C (Retenue) V (Débord.) ALU Décodeur Contrôleur Séquenceur Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle
Exécution d ’un programme en 6809:1er cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: 86 Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal B A X Y S U PC FE01 Z 0 (Zéro) N 0 (Négatif) C 0 (Retenue) V 0 (Débord.) ALU Décodeur Contrôleur Séquenceur Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle
Exécution d ’un programme en 6809:2ème cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: 86 Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal C B A 2D X Y S U PC FE02 Z 0 (Zéro) N 0 (Négatif) C 0 (Retenue) V 0 (Débord.) ALU Décodeur Contrôleur Séquenceur Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle
Exécution d ’un programme en 6809:3ème cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: 8B Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal D B A 2D X Y S U PC FE03 Z 0 (Zéro) N 0 (Négatif) C 0 (Retenue) V 0 (Débord.) ALU Décodeur Contrôleur Séquenceur 2D Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle
Exécution d ’un programme en 6809:4ème cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: 8B Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal E B A 87 X Y S U PC FE04 Z 0 (Zéro) N 1 (Négatif) C 0 (Retenue) V 1 (Débord.) ALU Décodeur Contrôleur Séquenceur 2D Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle 5A + 87
Exécution d ’un programme en 6809:5ème cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: B7 Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal F B A 87 X Y S U PC FE05 Z 0 (Zéro) N 1 (Négatif) C 0 (Retenue) V 0 (Débord.) ALU Décodeur Contrôleur Séquenceur Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle
Exécution d ’un programme en 6809:6ème cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: B7 00 Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal G B A 87 X Y S U PC FE06 Z 0 (Zéro) N 1 (Négatif) C 0 (Retenue) V 0 (Débord.) ALU Décodeur Contrôleur Séquenceur Bus de données FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses Bus de contrôle
Mémoire programme Mémoire données Le microprocesseur Exécution d ’un programme en 6809:7ème 8ème et 9ème cycle de fonctionnement Le microprocesseur Mémoire données 0000: 0001: 0002: 0003: 87 0004: 0005: B7 00 03 Registre d ’instructions Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal H B A 87 X Y S U PC FE07 Z 0 (Zéro) N 1 (Négatif) C 0 (Retenue) V 0 (Débord.) ALU Décodeur Contrôleur Séquenceur Bus de données 87 FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme Bus d’adresses 0003 Bus de contrôle
Exécution d ’un programme en 6809: le temps d’exécution du programme Mémoire données 0000: 0001: 0002: 0003: 0004: 0005: Le programme opération Code opérande LDAA #45 86 2D ADDA #$5A 8B 5A STAA $0003 B7 00 03 hexadécimal CONCLUSION FE00: 86 FE01:2D FE02:8B FE03:5A FE04:B7 FE05:00 FE06:03 FE07: Mémoire programme LDA -- 2 cycles de fonctionnement ADDA -- 2 cycles de fonctionnement STAA -- 5 cycles de fonctionnement (plus long car accès à la mémoire donnée) 9 cycles de fonctionnement Temps d’exécution du programme Tcycle= 4 .Thorloge (pour le 6809) Fhorloge = 4MHz (quartz de 4MHz) Thorloge= 1/4 μs Tcycle= 1 μs 9 μs