Parcours d'un tableau "BYTE" et "WORD" [ASM] - ASM - Programmation
Marsh Posté le 14-03-2004 à 17:33:31
non.
Marsh Posté le 14-03-2004 à 17:39:31
"Un mot aimable est comme un jour de printemps."
Marsh Posté le 14-03-2004 à 17:49:45
1) c'est censé faire quoi ?
2) deux versions ?
3) de mémoire la fonction 9h affiche jusqu'au '$', tu as l'air de croire que ça va t'afficher caractère par caractère...
4) pour des dw ? tu veux afficher des caractères ou un autre truc ?
5) si tu laisses ça comme ça, t'auras rien d'autre comme réponse...
Marsh Posté le 14-03-2004 à 17:51:52
je crois que ça affiche quelque chose à l'écran. l'algo avec les bytes devrait fonctionner. Par contre avec les words, ya pas de raison que ça fonctionne comme il faut. Faut voir en fait ce que fait le service 2h, s'il affiche une chaîne ou un byte. Mais un word, ça m'étonnerait même que ça existe. Donc pour moi, le 2è algo ne peut pas marcher.
Edit: et surtout comparer un seul byte sur les deux, ça tombe sous le sens: la boucle jouant sur des words, si le '$' se trouve à la mauvaise place, tu n'arriveras jamais dessus.
Marsh Posté le 14-03-2004 à 18:17:32
jijiz a écrit : "Un word aimable est comme une b... de printemps." |
ok je sors
Marsh Posté le 14-03-2004 à 18:18:52
jijiz a écrit : "Un mot aimable est comme un jour de printemps." |
Un word aimable est comme une b... le printemps
ok je sors
Marsh Posté le 14-03-2004 à 19:03:19
je veux percourir les deux tableau et afficher carac par carac
Marsh Posté le 14-03-2004 à 19:08:31
bin le second algo peut pas marcher alors
parce que tu sais pas forcément où sera le '$' dans le word, en poids fort ou en poids faible.
Marsh Posté le 14-03-2004 à 19:31:57
pr le premier, v'là une solution ki marche :
Code :
|
pr le second, on pourrait faire un truc du genre :
Code :
|
mais ca affiche "1 2 3" au lieu de "123" (pr corriger ça il faudrait mettre 2 inc kom tu l'as fait, mais ca pourrait etre problématik pr les tablos de longueur impaire). de tt façon, utiliser des word pr gérer les caractères, c une perte de place inutile...
Marsh Posté le 14-03-2004 à 19:39:22
Voila ca marche
donnees segment 'date' |
donnees segment 'data' |
Marsh Posté le 21-04-2004 à 00:53:48
Encore une petite correction..."inc si et inc si" chez moi ça fait "add si, 2"
Marsh Posté le 14-03-2004 à 17:22:58
Bonjour,
est-ce que ceci marche:
donnees segment 'date'
tablo db 4 dup ('0','0','0','$')
donnees ends
code segment 'code'
assume ds:donnees
mov si,0
boucle: cmp byte ptr[tablo+si],'$'
jne continue
jmp fin
continue: mov dl,byte ptr[tablo+si]
mov ah,2
int 21h
inc si
fin: mov ah,4ch
int21h
code end
donnees segment 'data'
tablo dw 4 dup ('0','0','0','$')
donnees ends
code segment 'code'
assume ds:donnees
mov si,0
boucle: cmp byte ptr[tablo+si],'$'
jne continue
jmp fin
continue:
lea dx,word ptr[tablo+si]
mov ah,9
int 21h
inc si
inc si
fin: mov ah,4ch
int21h
code end
Merci
si ca ne marche pas, merci de m'indique ou sont les bourdes.
Message édité par jijiz le 14-03-2004 à 17:36:07