Tp3 : programmation en 6800 - informatique industrielle - té

Informatique Industrielle : TP3 : Programmation en 6800

Télécharger PDF

TP3 : Programmation en Assembleur 6800

Exercice 1

Soit la séquence d’instructions suivante :

LDAA #$FF

ASL A

ASL A

LSR A

END

Questions

1. Quel est le contenu de l’accumulateur A après exécution ?

2. Quelle est la valeur du flag C du registre d’état ?

3. Que remarquez-vous ?

4. Charger l’accumulateur B avec la valeur #%11111111.

5. En utilisant l’instruction (ou les) de décalage adéquate(s), comment peut-on obtenir les valeurs suivantes ?

11111110 avec flag C == 1.

11111111 avec flag C == 1.

Exercice 2

Soit le programme Assembleur suivant :

; $0000 db $01

; $0001 db $02

LDX #$00D0

LDA A $00,X

LDA B $01,X

ABA

STA A $02,X

INX

CPX #$00D8

END

Questions

8. Que fait ce code ?

9. Quel est le contenu des accumulateurs A, B, X et le registre d’état (CCR) après exécution ?

A = ...................................................................

B = ...................................................................

X = ...................................................................

CCR = ..............................................................

10. Écrire un code qui donnera :

Année Universitaire : 2018/2019

Exercice 01 (Programmation)

Écrire un programme qui permet d’effectuer les opérations suivantes :

1. Ranger la valeur 3D dans la case mémoire [01F1] et FF dans la case mémoire [01F2].

2. Charger l’accumulateur A avec le contenu de [01F1] et l’accumulateur B avec le contenu de [01F2].

3. Charger le registre d’index par la valeur 01F1.

4. Incrémenter l’accumulateur A.

5. Soustraire la valeur 05 de l’accumulateur B.

6. Ranger le contenu de B dans [01F3] en utilisant le registre d’index.

Exercice 02 (Programmation)

On veut écrire un programme qui permet de transférer un bloc de données stocké en mémoire de l’adresse [0000] jusqu’à [0003] vers l’emplacement mémoire allant de [0008] jusqu’à [000B].

Questions

1. Proposer un programme Assembleur.

2. Proposer un deuxième programme qui utilise la pile.

FAQ

Q : Qu’est-ce que le flag C dans le registre d’état du 6800 ?

R : Le flag C (Carry) indique si un report ou une retenue s’est produit lors d’une opération arithmétique ou logique. Il est modifié par des instructions comme ASL, LSR, ROL, ROR, etc.

Q : À quoi sert l’instruction ASL dans le 6800 ?

R : ASL (Arithmetic Shift Left) décale les bits d’un registre vers la gauche. Le bit le plus significatif est copié dans le flag C, et le bit le moins significatif est mis à zéro. Cela permet de multiplier une valeur par 2.

Q : Comment utiliser la pile pour transférer des données en Assembleur 6800 ?

R : La pile est utilisée via les instructions TSX (Transfert Stack Pointer to Index Register), TXS (Transfert Index Register to Stack Pointer), PHA (Push Accumulator), PLA (Pull Accumulator), etc. Pour transférer des données avec la pile, il faut empiler les valeurs de la source puis les dépiler vers la destination.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne