Td3 : modes d’adressage - informatique industrielle - téléch

Informatique Industrielle : TD3 : Modes d’adressage

Télécharger PDF

Exercice 1 : Vrai ou Faux sur les Modes d'Adressage Immédiat

Dans l’adressage immédiat :

  • 1. Faux : Les registres de données ne reçoivent pas directement la valeur de l’opérande.
  • 2. Faux : Les registres d’adresses ne reçoivent jamais la valeur de l’opérande dans ce mode.
  • 3. Faux : Le registre d’index ne reçoit pas une adresse comme valeur.
  • 4. Vrai : L’accumulateur A reçoit une donnée comme valeur.
  • 1. Vrai : La présence du $ est facultative, mais elle indique clairement qu’il s’agit d’une valeur hexadécimale.
  • 2. Vrai : Le passage par la mémoire n’est pas nécessaire, car la valeur est directement incluse dans l’instruction.
  • 3. Vrai : Le registre reçoit un opérande de même taille (8 bits ou 16 bits selon le processeur).
  • 4. Vrai : L’opérande peut être sur 8 bits ou 16 bits selon le processeur et l’instruction.
  • 1. Faux : La présence du # est obligatoire pour indiquer le mode d’adressage immédiat.
  • 2. Faux : Le passage par la mémoire n’est pas nécessaire dans ce mode.
  • 3. Vrai : Le registre reçoit un opérande de même nature (donnée ou adresse selon le contexte).

Exercice 2 : Analyse des Instructions avec Modes d'Adressage

Voici le mode d’adressage, le contenu des registres, la nature de l’opérande, et les remarques pour chaque instruction :

Instruction Mode d'Adressage Contenu du Registre Nature de l'Opérande Changement en Mémoire ? Remarque sur la Taille
ADD A #17 Immédiat A = A + 17 Donnée (8 bits) Non Opérande sur 8 bits, registre A sur 8 bits.
LDX #CD12 Immédiat X = CD12 Adresse (16 bits) Non Opérande sur 16 bits, registre X sur 16 bits.
LDA B A21F Direct A = valeur à l’adresse A21F Donnée (8 ou 16 bits) Non Adresse sur 16 bits, donnée sur 8 ou 16 bits selon le processeur.
LDA B X, 07 Indexé avec décalage A = valeur à l’adresse X + 07 Donnée (8 ou 16 bits) Non Adresse calculée sur 16 bits, donnée sur 8 ou 16 bits.
BRA étiquette Relative - Adresse (8 bits) Non Décalage sur 8 bits, saut relatif.
ADD B #00 Immédiat B = B + 00 Donnée (8 bits) Non Opérande sur 8 bits, registre B sur 8 bits.
LDA A #25 Immédiat A = 25 Donnée (8 bits) Non Opérande sur 8 bits, registre A sur 8 bits.
LDX #0025 Immédiat X = 0025 Adresse (16 bits) Non Opérande sur 16 bits, registre X sur 16 bits.
LDS #0025 Immédiat S = 0025 Adresse (16 bits) Non Opérande sur 16 bits, registre S (pointeur de pile) sur 16 bits.
LDA A 25 Direct A = valeur à l’adresse 25 Donnée (8 bits) Non Adresse sur 16 bits (si processeur le permet), donnée sur 8 bits.
LDA A 1125 Direct (ou étendu selon contexte) A = valeur à l’adresse 1125 Donnée (8 ou 16 bits) Non Adresse sur 16 bits, donnée sur 8 ou 16 bits.
LDX 1125 Direct (ou étendu) X = valeur à l’adresse 1125 Adresse (16 bits) Non Adresse sur 16 bits, registre X sur 16 bits.
LDS 1125 Direct (ou étendu) S = valeur à l’adresse 1125 Adresse (16 bits) Non Adresse sur 16 bits, registre S sur 16 bits.
ADD A 1123 Direct (ou étendu) A = A + valeur à l’adresse 1123 Donnée (8 bits) Non Adresse sur 16 bits, donnée sur 8 bits.
SUB B #21 Immédiat B = B - 21 Donnée (8 bits) Non Opérande sur 8 bits, registre B sur 8 bits.
PUSH A Implicite Pointeur de pile SP = SP - 1, valeur A empilée à l’adresse SP Donnée (8 bits) Oui (empilement) Registre A sur 8 bits, pile modifiée.

Exercice 3 : Analyse du Programme

1. Description des instructions :

  • LDA A EE, X : Charge le registre A avec la valeur à l’adresse EE + X (mode indexé).
  • ADD A #AB : Ajoute la valeur AB (immédiate) au contenu de A.
  • LDX #00F1 : Charge le registre X avec l’adresse 00F1 (immédiate).
  • PUSH B : Empile le contenu du registre B sur la pile.
  • PUSH A : Empile le contenu du registre A sur la pile.
  • LDA B 00F6 : Charge le registre B avec la valeur à l’adresse mémoire 00F6 (direct).
  • SBA : Soustrait le contenu de A du contenu de B et stocke le résultat dans B.
  • SWI : Interruption logicielle (arrêt du programme).
  • LDX 00F2 : Charge le registre X avec la valeur à l’adresse mémoire 00F2 (direct).
  • ADD A F0, X : Ajoute la valeur à l’adresse F0 + X au contenu de A.
  • PUL A : Déempile la valeur du sommet de la pile dans le registre A.
  • PUL B : Déempile la valeur du sommet de la pile dans le registre B.
  • SBA : Soustrait le contenu de A du contenu de B et stocke le résultat dans B.

2. Contenu des registres après exécution :

  • X : 00F2 (après LDX 00F2).
  • B : Résultat de SBA (valeur modifiée après déempilement).
  • A : Résultat de ADD A F0, X (valeur modifiée après déempilement).
  • Pointeur de pile SP : Décrémenté de 2 après les deux PUSH (si initial à 00F3, final à 00F1).

FAQ

  1. Qu’est-ce que le mode d’adressage immédiat ? La valeur de l’opérande est directement incluse dans l’instruction, sans accès à la mémoire. Exemple : LDA A #25.
  2. Comment interpréter l’adressage indexé ? L’adresse effective est calculée en ajoutant un décalage au contenu d’un registre d’index. Exemple : LDA A EE, X utilise X comme index.
  3. Quelle est la différence entre PUSH et PUL ? PUSH empile une valeur sur la pile, PUL déempile une valeur depuis la pile vers un registre.

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