Vous êtes sur la page 1sur 2

UNIVERSITÉ ABDERRAHMANE MIRA DE BEJAIA

FACULTÉ DE TECHNOLOGIE
DÉPARTEMENT D’AUTOMATIQUE, TELECOMMUNICATION ET ELECTRONIQUE
3ème année Licence - LAA 314
2019/2020

SÉRIE DE TD N° 03
LA PROGRAMMATION EN ASSEMBLEUR
Applications

Exercice 1

Le programme assembleur donné ci-dessous calcule m en fonction de la valeur de n.


Dérouler ce programme pour déduire l’expression du calcul effectué.
data segment
n dw 10
m dw ?
data ends

prog segment
begin: MOV AX, data
MOV DS,AX
MOV CX, n
MOV AX,0
MOV BX,1
Boucle:ADD AX,BX
SHL BX,1
LOOP Boucle
MOV m,AX
HLT
ends
end begin

Exercice 2
Compléter le programme assembleur ci-dessous qui permet de remplacer tous les
éléments négatifs du tableau T par 0 (n est la taille de T)
data SEGMENT
T DB -1,2,-3,-4,5,6,7,8,-9,10
n DW 10
ENDS
prog SEGMENT
debut: MOV AX,data
MOV DS,AX
.
.
.
HLT
ends
end debut

7
TD N°3 : Programmation en assembleur

Exercice 3
Ecrire un programme en assembleur qui calcule la somme S des n premiers éléments d’un
vecteur T. Les éléments de T, S et n sont des entiers 16bits.

exemple : pour T= [-4, 5, 10, 12, 45, -74, 6] et n=3 → S=11 .

Exercice 4
Ecrire un programme qui teste si un entier X, compris entre 1 et 255, est premier. Le CF
sera utilisé pour indiquer le résultat du test: le programme met CF à 1 si le nombre est
premier, dans le cas contraire CF=0.
Exemple : pour X=10 → CF=0 (10 n’est pas un nombre premier).
Algorithme :
(1) On calcule limite=X/2 (division entière)
(2) On initialise i=2
(3) Si i>limite → étape(5)
(4) X est divisé par i :
- Si le reste de division est égale à 0 (X est pas un multiple de i ) ⇒ X n’est pas
premier : donc on met CF à 0 →étape (6).
- Sinon on incrémente i → étape (3)
(5) on met CF à 1 (X est premier)
(6) Fin programme

Exercice 5
Écrire un programme en assembleur qui permet de calculer M = X.Y (X et Y non signés)
sans l’utilisation de l’instruction MUL. M, X et Y sont des nombres 16bits. Le CF est mis à
1 pour indiquer le dépassement.
Modifier le programme précédent pour réaliser la multiplication de 2 nombres signés X
et Y sans l’utilisation de l’instruction IMUL.

Exercice 6
Écrire un programme en assembleur pour:
- Trier par ordre alphabétique les lettres d’une chaine de caractère,
exemple : "programme$" → "aegmmoprr$".
- Compter le nombre de ‘la’ dans un texte,
exemple : ‘’ la programmation en assembleur est facile lalala$’’ → 4
- Mettre les initiales des mots en majuscule,
exemple : ‘’ la programmation en assembleur est facile$’ →‘’ La
Programmation En Assembleur Est Facile$’

NB : le caractère ‘$’ marque la fin de la chaine de caractère.

Vous aimerez peut-être aussi