0% ont trouvé ce document utile (0 vote)
498 vues2 pages

Applications: Ériedetdn 03 A Programmation en Assembleur

Le document contient 6 exercices de programmation en assembleur. L'exercice 1 calcule une expression à partir d'un programme donné. L'exercice 2 remplace les éléments négatifs d'un tableau par 0. L'exercice 3 calcule la somme des n premiers éléments d'un vecteur. L'exercice 4 teste si un nombre est premier. L'exercice 5 réalise une multiplication sans l'instruction MUL. L'exercice 6 traite des chaines de caractères.

Transféré par

Sara Benseba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
498 vues2 pages

Applications: Ériedetdn 03 A Programmation en Assembleur

Le document contient 6 exercices de programmation en assembleur. L'exercice 1 calcule une expression à partir d'un programme donné. L'exercice 2 remplace les éléments négatifs d'un tableau par 0. L'exercice 3 calcule la somme des n premiers éléments d'un vecteur. L'exercice 4 teste si un nombre est premier. L'exercice 5 réalise une multiplication sans l'instruction MUL. L'exercice 6 traite des chaines de caractères.

Transféré par

Sara Benseba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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