TD AP2 Correction
TD AP2 Correction
TD AP2 Correction
Ce premier programme ajoute le contenu des cellules mémoire des adresses 1101, 1102, 1103,
1104 et 1105 à DL qui est en départ 0. Comme le montre la figure ci-dessus, on a introduit dans
les cellules des valeurs au hasard et obtenu dans le registre DL la valeur hexadécimale E.
Ce deuxième programme incrémente 5 fois le registre AX. Alors le contenu de ce registre après
l'exécution du programme est A en hexadécimal.
Ce troisième programme, dans ses premières instructions, met 5 dans AX, 2 dans BX. Ensuite,
il saute à l'étiquette CALC pour ajouter le contenu de BX à AX. Puis, il passe à l'étiquette
BACK, qui à son tour passe à l'étiquette STOP où se trouve l'instruction RET.
Exercice 2 :
Écrire un programme en assembleur 8086 qui permet de calculer le factoriel de 5. Le résultat
doit être rangé dans @ D000h.
Exercice 3:
Écrire des programmes en assembleur 8086 qui permettent :
1. D'avoir toujours AH supérieur ou égal à AL.
3. De faire en sorte que AH contient toujours le maximum des valeurs d'adresse mémoire
entre 200h et 211h.
4. Compter les nombres nuls dans un tableau d'octets dans une mémoire de longueur 20 et
commençant à l'adresse [200h], le résultat sera placé à l'offset [400h].
Exercice 4:
En utilisant l'instruction TEST, compter les nombres pairs dans un tableau d'octets de 12h
d'adresses en commençant par @ 300h. Placez le résultat dans @ D000H.
Exercice 5 :
Écrire un programme en langage assembleur 8086 qui calcule le nombre de "1" dans AX.
Mettez le résultat dans le registre BL.
Exercice 6 :
Pour chacune de ces 4 questions, n'utilisez qu'une seule des fonctions AND, OR, XOR et
TEST pour effectuer l'une des tâches suivantes (chaque instruction doit être utilisée une fois).
1. Convertir le code ASCII d'un chiffre décimal (0-9) contenu dans AL en sa
valeur numérique.
2. Mettre les bits impairs de AX à "1" sans modifier les bits pairs.
3. Écrire un programme qui indique si les deux bits : le MSB et le LSB de BH sont tous
deux à 1 sans changer la valeur de BH.
Exercices supplémentaires :
Écrire un programme qui calcule le nombre de "0" dans la case mémoire pointée par DS :300h.
Mettez le résultat à l’offset 305h.
Remarque :
Il peut y avoir plusieurs façons d'écrire des programmes pour répondre à ces exercices.