Vous êtes sur la page 1sur 2

Série N°3

Exercice N° 1:
Ecrire un programme, en langage assembleur 8086, qui permet de compter les nombres nuls
dans un tableau d’octets mémoire de longueur 100h et débutant à l’adresse [200h], le résultat
sera placé à l’adresse [400h].

On donne dans la figure ci-dessous l’organigramme correspondant.

Exercice N°2:
On donne la structure algorithmique suivante :

Si (AH>0 et BH>0) ou (AL<0 et BL<0)

Faire

- Décaler à droite le registre Ax par 3


- Appliquer la fonction logique XOR entre Bx et Ax,
le résultat sera mis dans Bx

Si_non

- Faire une rotation à gauche du registre AX par 3


- Appliquer la fonction logique AND entre Ax et Bx,
le résultat sera mis dans Ax

Fin_Si
1- En commençant par affecter les registres AX et BX par deux valeurs quelconques,
Donner l’organigramme correspondant à cette structure algorithmique. Note  : Sans
faire aucune exécution.

2- Traduire en code assembleur

Exercice N°3:
Soit le programme suivant :
MOV Ah, 0x9C
MOV Bh, 0xE6
MOV Cl, 4
label_1: ROR Ah, Cl
XOR Ah,Bh
SHL Bh, Cl
LOOPNZ label_1
HLT.
1. Exécuter ce programme tous en indiquant les états des registres AX et BX.
2. Refaire l’exécution tous en remplaçant LOOPNZ par LOOPZ

Exercice N°4:
Soit la déclaration suivante :
TABLE1 Dw 0xA2F3, 563A, 3A
LG_TABLE1 EQU $-TABLE1
1er Partie  :

Ecrire un programme, en langage assembleur 8086, qui permet d’appliquer sur chacune case
octet mémoire appartenant à TABLE1, la technique suivante :

 Si l’octet mémoire possède à la fois un bit N°3=1 et un bit N°5=1, nous


appliquons un décalage à droite par 3

 Si l’octet mémoire possède à la fois un bit N°3=1 et un bit N°5=0, nous


appliquons un décalage à gauche par 2

 Dans les cas contraires, nous appliquons une rotation à droite par 4 (sans
faire intervenir le Flag CF pendant la rotation)

Note : le résultat du chacune case est transféré vers la même position.

2ième Partie  :

Exécuter ce programme, et donner le nouveau tableau octets mémoire TABLE1.

Vous aimerez peut-être aussi