Instruction mov(8086)

Signaler
Messages postés
15
Date d'inscription
samedi 28 octobre 2006
Statut
Membre
Dernière intervention
21 avril 2007
-
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
-
Bonsoir
Est-il correct d'utiliser l'instruction mov de la maniére suivante:
mov array[si],al
si ce n'est pas possible,POURQUOI??
-Je travaille avec le 8086-
g'espere que quelqu'un à une réponse à ma question
Merci à tous

1 réponse

Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
2
Bonjour Lilia_sys,

Si je comprend bien, tu veux transférer la valeur du registre al dans un tableau indicé.
Dans ce cas tu dois pouvoir utiliser l'instruction
mov [tableau+SI],al

Le contenu de al sera copié en DS:tableau+SI
Cette instruction peut être un peut différente selon l'assembleur utilisé.

Si tu dois répéter plusieurs fois cette instruction, je te conseille d'utiliser comme index DI au lieu de SI.
L'instruction STOSB copie le contenu de al dans l'emplacement mémoire pointé par ES:DI et incrémente (ou décrémente DI). L'incrémentation/décrémentation dépend de la valeur de D (CLD, STD)

Pour répéter l'opération tu utilisera le préfixe REP (répète l'opération CX fois)
REP STOSB copiera CX fois le contenu de al en ES:DI

Tu peux accélérer les choses en copiant non pas un octet mais un word. ax sera alors copié avec l'instruction STOSW et ED:DI sera incrémenté de 2.

A+