Lilia_sys
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention21 avril 2007
-
22 févr. 2007 à 21:00
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 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:
Unknown opcode skipped: 65 not 8086 instruction - not supported yet.
cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 20083 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.