Instruction mov(8086)

Lilia_sys Messages postés 15 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 21 avril 2007 - 22 févr. 2007 à 21:00
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 23 févr. 2007 à 09:18
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
A voir également:

1 réponse

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
23 févr. 2007 à 09:18
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+
0
Rejoignez-nous