TD Proc Assembleur

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

TD Architecture des ordinateurs Classe : L1INFO

-------------------------------------------------------------------------------------------------------------
Exercice 1
1. Représenter les éléments principaux d’un processeur (Von Neumann)

2. Décrire les étapes du cycle de recherche / d’exécution d’un processeur.

Exercice 2
1. Dans un registre 8 bits, on effectue des opérations sur des nombres signés. Donnez le
résultat des opérations suivantes et positionnez les indicateurs d’état.

1011 0001 1111 0000 0101 0111


+ 1011 1111 + 0001 0000 + 0110 0011

SF= CF= SF= CF= SF= CF=


ZF= OF= ZF= OF= ZF= OF=

2. Dans l’extrait de programme suivant, précisez pour chacune des instructions le mode
d’adressage.

Adresse Instruction Mode d’adressage


1000 MOV AH, [1002]
…….. ADD AL, 16
…….. INC AX
…….. MOV [CX], 14
…….. JG 1014

3. Dites ce que le programme suivant range dans AL en fin d’exécution : dites ce que cela
représente et donnez la valeur.

Page 1 sur 2
TD Architecture des ordinateurs Classe : L1INFO
-------------------------------------------------------------------------------------------------------------
4. Donner le contenu de AL et l'état des indicateurs ZF, CF, SF et OF après l'exécution du
programme suivant :
a. MOV AL, 79H c. MOV AL, A0H e. MOV AL, 0H
b. ADD AL, 30H d. ADD AL, A0H f. SUB AL, 1H

5. Écrire le code de l’instruction


a. if (a >b) || (c > d))
{
}

b. if (a>b) && (c <= d)


{
................
}
6. Écrire un programme en assembleur, qui permet de calculer le produit de
deux variables A et B et de ranger le résultat dans une variable C.

7. Écrire en langage assembleur, les instructions qui permettent de réaliser le


même traitement que le l’algorithme suivant :
Tantque I ≥ 1
Faire
I I – 1
Fintantque
8. Écrire en assembleur, un programme qui permet de calculer n ! avec n > 0.
9. Soit le cas d’une machine avec un jeu d’instructions à une seule adresse
donné en annexe
Soit le programme en langage assembleur suivant, utilisant trois variables A, B et RES :
1. LOAD A
2. CMP B
3. JB Etq1
4. JMP Etq2
5. Etq1: LOAD B
6. Etq2: STORE RES

Sachant que :
- Chaque variable est de taille trois octets.
- La taille d’un mot mémoire est de 3 octets.
- La taille d’une instruction est de 3 octets (code opération sur 1 octet et adresse
opérande sur 2 octets).
- Les données sont rangées dans la mémoire centrale à partir de l’adresse (11FE)16 .
- Les instructions sont rangées à partir de l’adresse (F21C)16.

Q1 : Élaborer un schéma qui reflète le contenu de la mémoire centrale avant l’exécution de


ce programme.
Q2: on se propose de réaliser la trace du programme :
a- Expliquer pourquoi juste après le chargement de ce programme et avant son
exécution, le compteur ordinal doit être initialisé par la valeur (F21C)16
b- Faire la trace du programme en se concentrant sur les registres et les variables les
plus importants.
c- Quel serait le contenu de la variable RES si la valeur de A était (000022) 16 et la valeur
de B était (000015)16 ?
d- Que fait ce programme ?

Page 2 sur 2

Vous aimerez peut-être aussi