Page 1

Lycée technique Ibn Sina Kénitra

1 BTS DSI / 2011

DS N°1 Epreuve de : M3 (Assembleurs 8086) Durée : 1h 30min Questions de cours 1. Qu’elle est la taille mémoire adressable par un microprocesseur de bus de données D0 à D7 et d’adresses de A0 à A9 ? 2. Quel est le rôle du registre IP dans un Microprocesseur 8086 ? 3. Donner l’équivalent binaire en notation signé (en complément à 2) sur 8 bits des valeurs : -5 et -14. 4. Donner l’adresse physique correspondante à l’adresse dont le segment est 5000h et d’offset 0250h. Ecrire l’adresse logique et l’adresse physique. 5. Citer les 14 registres du microprocesseur 8086. 6. Rappeler les différents constituons de l’architecture de base (Von Neumann) : tracer le schéma synoptique.

Exercice 1 : Dans le cas où ces registres ont les valeurs suivantes: BX=324A,

BP=2500,

AX=36C1,

DS=5000,

SS=7000,

SI=2000, DI=4000,

Décrire les instructions et calculer l’adresse physique de la mémoire ou l’opérande est sauvegardé, ainsi que le contenu des locations mémoires dans chacun des modes d’adressage suivants : Instruction

Description

Mode d’adressage

MOV SI,BX MOV al, 12h MOV [BP], AL MOV [BX],BH MOV

[BP]+150, AX

Exercice 2 : Ecrire la suite d’instructions pour réaliser les étapes suivantes : 1. copier le contenu de la case mémoire [1230h] dans CX 2. Comparer CX à 200 a. si < incrémenter CX et recommencer au point 2 b. si > décrémenter CX et recommencer au point 2 c. si = copier CX dans AX et continuer le programme 1/2

Adresse physique

Son Contenu


Exercice 3 : Traduire en assembleur l’algorithme suivant : AL=1 BX=1 REPETER BX=BX*AL AL=AL+1 TANT QUE (AL<7) Donner la valeur de BX à la fin d’exécution du programme.

Exercice 4 : Ecrire un programme assembleur permettant de chercher le maximum de 10 valeurs positives stockées à partir de l’adresse 0200h. La valeur maximal sera stockée dans l’adresse 0300h.

Exercice 5 : Soit à convertir l’algorithme suivant en assembleur 8086. Algorithme de tri « Bulle ». On considère un tableau d'entiers signés sur 16 bits, pointé par « a » et l'algorithme de tri suivant : PROGRAMME Tri_Bulle VARIABLE permut : Booleen(0 ou 1); REPETER permut = 0 (FAUX) POUR i VARIANT DE 0 à N-1 FAIRE SI a[i] > a[i+1] ALORS echanger a[i] et a[i+1] permut = 1 (VRAI) FIN SI FIN POUR TANT QUE permut = 1 (VRAI) FIN PROGRAMME

2/2

ds1m31bts  

MOV [BP]+150, AX Exercice 1 : Exercice 2 : Décrire les instructions et calculer l’adresse physique de la mémoire ou l’opérande est sauvegard...