marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011
-
Modifié le 11 juin 2020 à 17:33
BAISSA -
11 juin 2020 à 03:33
Bonjour,
j'ai ce code assembleur qui permet la creation d'un tableau de 10 cases et les remplir avec le chiffre 5.en l'utlisant avec tasm,il s'avère qu'il présente des erreurs .si vous pouvez les corriger et comment je peux modifier ce code pour demander à l'utlisateur de donner des valeurs pour remplir le tableau...Merci d'avance
voici le code
.MODEL SMALL
.STACK
.DATA
TABLEAU DB 10 DUP (?)
.CODE
MOV AX,0
BOUCLE:
MOV TABLEAU[AX],5
INC AX
CMP AX,9
JNE BOUCLE
MOV AX,0
BOUCLE2:
MOV DX,TABLEAU[AX]
INC AX
CMP AX,9
JNE BOUCLE2
MOV AX,4C00H
INT 21H
END
les erreurs affichées par TASM:
<13>illegal indexing mode
<21>operand types do not match
ToutEnMasm
Messages postés591Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 16 oct. 2010 à 14:55
Gare aux 8086,..286 8 16 bits.
Il distingue les registres généraux,d'adresse et d'indexage.
si di pointeurs d'adresses
bx index
mov [di+bx],..
c'est pour ça que l'assembleur actuel est si utilisable.
OUI bx est le registre d'index.
Après il faut encore se préoccuper des segments,de la pile,de la ...SOS
ToutEnMasm
Messages postés591Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 16 oct. 2010 à 15:46
je n'ai que 53 ans et le 8086 commence à devenir un vieux souvenir.
Il me semble que DS doit être positionner sur le registre des data.
L'adresse complète en 8086 est:
Segment + pointeur + index
Un segment en 8086 a une valeur.
cette valeur représente (Valeur * 16) bytes
11 juin 2020 à 03:33