Vous êtes sur la page 1sur 2

Electronique Numérique TD5

Exercice 1 : Les interruptions logicielles


On veut afficher un digit hexadécimal existant à l’adresse mémoire 200H. Nous utilisons pour
cela l’interruption 21H avec la fonction 02. Nous rappelons que cette fonction affiche le
caractère dont le code ASCII se trouve dans le registre DL.
1) Quels sont les codes ASCII des valeurs 0 à 9 ? calculer la différence : ASCII(x) – x .
2) Compléter le programme suivant pour réaliser l’affichage d’un digit entre 0 et 9 se
trouvant à l’adresse 200H.
org 100H
………….............................. ; mettre le contenu de l’adresse 200H dans le registre DL
………….............................. ; additionner à DL la valeur de Diff
………….............................. ; mettre la fonction d’affichage dans le registre AH
………….............................. ; appeler la fonction d’interruption 21H
ret

3) Modifier le programme pour réaliser l’affichage d’un digit entre 0 et F se trouvant à


l’adresse 200H.
4) On veut remplir la zone mémoire du 200H à 210H (inclues) par les codes ASCII des
caractères tapés au clavier. Pour cela on utilise la boucle LOOP. Compléter le
programme pour réaliser la saisie des caractères.

org 100H
………….............................. ; (1) : charger SI par 200H
………….............................. ; (2) : initialiser le registre CX
………….............................. ; (3) : mettre la fonction de saisie au clavier dans le registre AH
Bcle : ………….............................. ; (4) : appeler la fonction d’interruption 21H
………….............................. ; (5) : mettre le contenu de AL dans l’adresse pointée par SI
INC SI ; Incrémentation du contenu du registre SI
LOOP Bcle
ret

5) Indiquer le type d’adressage des instructions de la question précédente.


6) Si le registre CS content 0700H, quelles sont les adresses logique et physique du
commencement du programme :
7) Ajouter à votre programme le message qui doit afficher : « Saisie de caractères »
8) On veut réaliser un programme pour convertir un caractère majuscule tapé au clavier
en caractère minuscule. Pour cela on utilisera l’interruption 21H avec les fonctions 07
et 02. Compléter le programme suivant pour réaliser cette opération.

org 100H
………….............................. ; (1) charger AH par la fonction de lecture sans echo
………….............................. ; (2) appeler l’interruption 21H
………….............................. ; (3) ajouter à AL la valeur de Diff
………….............................. ; (4) mettre le contenu de AL dans DL
………….............................. ; (5) charger AH par la fonction d’affichage d’un caractère
………….............................. ; (6) appeler l’interruption 21H
ret

9) Que faut-il transformer dans le programme pour réaliser la saisie des caractères
minuscules et les afficher en majuscules ?

Page 1 sur 2
Electronique Numérique TD5

Exercice 2 : les flags


L’instruction « ADD » permet de positionner les flags CZSOPA à ‘1’ ou à ‘0’ selon le résultat
de l’opération.
C
1) Après avoir exécuté le programme suivant, quelles sont les valeurs que prennent ces
Z
flags ? Faire un calcul manuel pour justifier votre réponse.
S
org 100H ………………………………
MOV BL, 75 + O
MOV BH, 67 ………………………………
ADD BH, BL ______________________________ P
ret = ………………………………
A

2) Proposer un programme pour positionner les flags comme indiqué :

A P O S Z C

1 1 0 0 1 1

Exercice 3 : Performance d’un microp


La formule théorique de performance d’un microprocesseur est donnée par :
performance = [(Nombre d’instructions)x(Nombre de cycles par instruction)x(période d’horloge)] -1

1) Expliquer comment peut-on améliorer la performance d’un microprocesseur en exploitant


les avantages d’une architecture à jeu d’instructions RISC ou CISC.
2) Que signifient SPECint2000 et SPECfp2000 ?

Exercice 4 : Les segments


1) Pour chaque programme les registres de segmentations pointent sur trois zones mémoires :
le programme, les données et la pile. Que signifient les noms des registres : CS, DS, ES et
SS ?
2) Si CS = 1296H et IP = 2500H quelles sont les adresses logique et physique pointées par le
microprocesseur ?
3) Une instruction à rechercher est dans l’adresse physique 2354EH et CS=1590H, vérifier si
la bande du code segment l’inclut ou pas ?

Page 2 sur 2

Vous aimerez peut-être aussi