Université Sultan Moulay Slimane
Faculté Polydisciplinaire Béni-Mellal
Département d’Informatique
TP n° 5 Architecture des ordinateurs
MIP-S3 —– 2024/2025
Exercice 1
1- Traduire ces lignes de code en Assembleur :
1. La boucle for
1 BX = 10 ;
2 for ( CX =0 ; CX < BX ; CX ++)
3 BX = BX + CX ;
2. La boucle while
1 BX = 0 ;
2 while ( BX > 0)
3 BX = BX -1 ;
3. La boucle switch
1 switch ( BX ) {
2 case 1 : AX =1 ; break ;
3 case 2 : AX =5 ; break ;
4 case 3 ; AX =10; break ;
5 default : AX =0 ; }
2- Exécuter chacune des boucle précedentes.
Exercice 2
On souhaite additionner deux nombres signés N1 et N2 se trouvant respectivement aux offsets
1100H et 1101H. Le résultat est rangé à l’offset 1103H s’il est positif, à l’offset 1102H s’il est
négatif, et à l’offset 1104H s’il est nul.
Écrire et tester le code Assembleur correspondant.
1
Exercice 3
Écrire un programme Assembleur qui :
1. Affiche au début : ”Saisir un caractère:”.
2. Récupère le caractère saisi par l’utilisateur.
3. Affiche finalement: ”Le caractère saisi est: ...”.
Exercice 4
On souhaite écrire un programme pour calculer la somme des 11 premiers entiers (0 + 1 + 2 + ...
+ 10 + 11).
1. Première méthode :
On utilisera les instructions MOV, CMP, JNE, ADD, DEC ou INC. Pour ce faire, on
utilisera une variable R pour stocker le résultat et une variable N pour stocker le nombre 11.
2. Deuxième méthode : On utilisera l’instruction LOOP pour réaliser le calcul.
Pour chacune des méthodes précédentes, écrire puis tester le code Assembleur correspondant.