Vous êtes sur la page 1sur 5

contenu

menu

navigation

pied de page

Attention, votre navigateur ne supporte pas le javascript ou celui-ci à été


désactivé. Certaines fonctionnalitées de ce module sont restreintes.
Architecture des Ordinateurs
Mode :

Cours

Menu :

Objectifs

Introduction

Partie 1 : Systmes de numration et Codage

Partie 2 : Architecture interne de l'ordinateur

Partie 3 : Programmation assembleur 80X86

o Introduction

o Chapitre 1 : Premiers pas..

o Chapitre 2 : Les Bases du langage

Structure d'un programme assembleur

Dclaration des variables simples

Les tableaux

Plus loin avec les REGISTRES

Les modes d'adressage

o Chapitre 3 : Les instructions de base

o Chapitre 4 : Notions avances

Partie 4 : Travaux pratiques

Masquer le plan
Contenu :

Les tableaux
Il est possible de dclarer des tableaux , c'est dire des suite d'octets ou de
mots conscutifs.
Pour cela, utiliser plusieurs valeurs initiales :
data SEGMENT
machin db 10, 0FH ; 2 fois 1 octet
chose db -2, 'ALORS'
data ENDS

Remarque :
la dclaration de la variable chose : un octet -2 (=FEH), suivi d'une
suite de caractres.
L'assembleur n'impose aucune convention pour la reprsentation des
chanes de caractres : c'est l'utilisateur d'ajouter si ncessaire un
octet nul pour marquer la fin de la chane.
Aprs chargement de ce programme, la mmoire aura le contenu
suivant :

Exemple :
Si on veut crire un caractre Z la place du O de ALORS, on pourra
crire :
MOV AL, 'Z'
MOV chose+3, AL
Notons que chose+1 est une constante (valeur connue au moment de
l'assemblage) : l'instruction gnre par l'assembleur pour
MOV chose+1, AL est :
MOV [adr] , AL ----------> ( [adr] est une adresse mmoire, le point
suivant traite des diffrents modes d'adressage)
Mthode :
Une autre mthode pour dclarer un tableau consiste utiliser la
directive DUP qui nous permet de dclarer un tableau de n cases, toutes
initialises la mme valeur.
tab DB 100 dup (15) ; 100 octets valant 15
zzz DW 10 dup (?) ; 10 mots de 16 bits non initialises

Comment parcourir les lments d'un tableau ?


Pour parcourir les lments ( les cases ) d'un tableau, il existe en fait deux
techniques :
1. Rcuprer l'adresse de dbut du tableau dans un des registres d'offset
( SI, DI, BP, BX ), ensuite incrmenter cet adresse pour passer
l'lment suivant.
2. Accder directement au lments du tableau en utilisant une syntaxe
trs simple ( comme dans le langage C ) nom_tableau[ indice
lment ] et donc chaque, on va incrmenter l'indice pour passer
l'lment suivant.

Exemple : Parcourir un tableau


Dans cet exemple, je vous montre comment parcourir un tableau pour
rechercher le plus grand nombre en utilisant les deux mthodes cits en
haut.
Pour les deux exemples on va utiliser le segment de donnes suivant :
La variable Valeurs est un tableau d'octet de 4 lments defiinis
l'avance.
La variable Max est un octet dont la valeur est non dfinie. C'est l
que nous allons stocker le plus grand nombre que nous allons
trouver au fur et mesure qu'on parcours le premier tableau
(Valeurs)

Commenons par la premire mthode : ( rcuprer l'adresse du tableau


)
.

Passons maintenant la deuxime mthode : (accder aux cases


laide d'indice )
Supposons que nous avons cette dclaration :

Les lments du tableaux seront


indics de la manire suivante :

.
Revenons maintenant notre exemple, on va accder aux lments du
tableau Valeurs de la mme manire :
.

Navigation : Prcdent | Suivant

Accueil | Imprimer | |