Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1303 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  [ASM] Parcours d'un tableau "BYTE" et "WORD"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASM] Parcours d'un tableau "BYTE" et "WORD"

n°673289
jijiz
Posté le 14-03-2004 à 17:22:58  profilanswer
 

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
mood
Publicité
Posté le 14-03-2004 à 17:22:58  profilanswer
 

n°673301
drasche
Posté le 14-03-2004 à 17:33:31  profilanswer
 

non.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°673313
jijiz
Posté le 14-03-2004 à 17:38:48  profilanswer
 

j'ai édité ma question, tu édite ta réponse??? :ooooo)

n°673316
jijiz
Posté le 14-03-2004 à 17:39:31  profilanswer
 

"Un mot aimable est comme un jour de printemps."


Message édité par jijiz le 14-03-2004 à 17:39:42
n°673328
jijiz
Posté le 14-03-2004 à 17:48:24  profilanswer
 

Y-a-t il une âme charitable?

n°673332
bjone
Insert booze to continue
Posté le 14-03-2004 à 17:49:45  profilanswer
 

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...

n°673334
drasche
Posté le 14-03-2004 à 17:51:52  profilanswer
 

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.


Message édité par drasche le 14-03-2004 à 17:53:01

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°673364
red factio​n
Posté le 14-03-2004 à 18:17:32  profilanswer
 

jijiz a écrit :

"Un word aimable est comme une b... de printemps."


 
ok je sors


Message édité par red faction le 14-03-2004 à 18:18:23
n°673365
red factio​n
Posté le 14-03-2004 à 18:18:52  profilanswer
 

jijiz a écrit :

"Un mot aimable est comme un jour de printemps."


 
 
Un word aimable est comme une b...  le printemps  :o  
 
ok je sors
 

n°673397
jijiz
Posté le 14-03-2004 à 19:03:19  profilanswer
 

je veux percourir les deux tableau et afficher carac par carac

mood
Publicité
Posté le 14-03-2004 à 19:03:19  profilanswer
 

n°673398
drasche
Posté le 14-03-2004 à 19:08:31  profilanswer
 

bin le second algo peut pas marcher alors [:spamafote]
 
parce que tu sais pas forcément où sera le '$' dans le word, en poids fort ou en poids faible.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°673411
monsieur t​omate
Posté le 14-03-2004 à 19:31:57  profilanswer
 

pr le premier, v'là une solution ki marche :

Code :
  1. donnees segment 'date'
  2. tablo db 4 dup ('1','2','3','$')
  3. donnees ends
  4. code segment 'code'
  5. assume ds:Donnees, cs:code
  6. debut:
  7. MOV AX,DONNEES
  8. MOV DS,AX
  9. mov dx,0
  10. mov si,0
  11. boucle:
  12. cmp byte ptr[tablo+si],'$'
  13.         jne continue
  14.         jmp fin
  15. continue:
  16. mov dl, byte ptr[tablo+si]
  17.         mov ah,2
  18.         int 21h
  19.         inc si
  20. jmp boucle
  21. fin:   
  22. mov ah,4ch
  23.         int 21h
  24. code ends
  25. end debut


 
pr le second, on pourrait faire un truc du genre :

Code :
  1. donnees segment 'data'
  2. tablo dw 4 dup ('1','2','3','$')
  3. donnees ends
  4. code segment 'code'
  5. assume ds:Donnees, cs:code
  6. debut:
  7. MOV AX,DONNEES
  8. MOV DS,AX
  9. mov si,0
  10. boucle:
  11. cmp word ptr[tablo+si],'$'
  12.         jne continue
  13.         jmp fin
  14. continue
  15.         mov dx,word ptr[tablo+si]
  16.         mov ah,2
  17.         int 21h
  18.         inc si
  19. jmp boucle     
  20. fin:    mov ah,4ch
  21.         int 21h
  22. code ends
  23. end debut


 
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...


---------------
HardGamers.org
n°673418
jijiz
Posté le 14-03-2004 à 19:39:22  profilanswer
 

Voila ca marche

donnees segment 'date'
tablo db 4 dup ('1','2','3','$')
donnees ends
 
 
code segment 'code'
assume ds:Donnees,cs:code
 
debut:
 MOV AX,DONNEES
 MOV DS,AX
       mov si,0
      ;mov dx,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
          JMP boucle
fin:      mov ah,4ch
          int 21h
code ends
end debut


 

donnees segment 'data'  
 tablo dw 6 dup ('1','2','3','4','5','$')
donnees ends  
 
code segment 'code'  
assume ds:Donnees, cs:code  
 
debut:
 MOV AX,DONNEES
 MOV DS,AX
 
 mov si,0  
 
boucle:  
 cmp word ptr[tablo+si],'$'  
        jne continue  
        jmp fin  
 
continue:  
        mov dx,word ptr[tablo+si]  
        mov ah,2
        int 21h  
        inc si
        inc si
 jmp boucle      
 
fin:    mov ah,4ch  
        int 21h  
 
code ends
end debut

n°673420
jijiz
Posté le 14-03-2004 à 19:40:21  profilanswer
 

VIVE MONSIEUR TOMATE QUI MA GRIllé

n°704483
christophe​_d13
L'efficacité à tout prix.
Posté le 21-04-2004 à 00:53:48  profilanswer
 

Encore une petite correction..."inc si et inc si" chez moi ça fait "add si, 2"


Message édité par christophe_d13 le 21-04-2004 à 00:55:31

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  [ASM] Parcours d'un tableau "BYTE" et "WORD"

 

Sujets relatifs
[ASM] Conversion entier en chaine decimal[VBA Word] Refresh du sommaire [OK]
Titre sur un tableau/calqueUn devis ou un conseil pour des Macros Word
nommage tableau dynamiquementProblème d'allocation d'un tableau dans une fonction
[ASM GNU x86] Problème de segmentation fault [Résolu]recherche de source : gestion avancée de tableau/grille
Recherche ActiveX equivalent au tableau croisé dynamique de crosoftimpression de plusieurs pages d'un tableau dynamique automatique
Plus de sujets relatifs à : [ASM] Parcours d'un tableau "BYTE" et "WORD"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR