AFFICHER UNE CHAINE DE CARACTERE MASM32

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 26 janv. 2004 à 15:10
Vv20oX Messages postés 8 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 8 mars 2004 - 27 janv. 2004 à 13:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19794-afficher-une-chaine-de-caractere-masm32

Vv20oX Messages postés 8 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 8 mars 2004
27 janv. 2004 à 13:51
Salut,Je vois ce que tu veux dire.Tu m'as mis sur le chemin de la
raison!
J'ai deja rencontré ce probleme pour generer un nom au hazard avec
une procedure..
Mais moi tant que le compilateur n'affiche pas d'erreur,c'bon,
Hors ce n'est surement pas comme ca que je vais m'ameliorer!
J'aurais du la mettre dans une procedure.
J'ai reglé le probleme maintenant regarde..
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2004 à 19:21
mov byte ptr[edx], 0
n'est pas la pour ajouter une ligne, aucun rapport.
Ton code ne marche qu'1 SEULE fois, recommence sous le messagebox une boucle qui n'ecrirait que 10 octets pour tester.
Win32 attend des chaines de style C (terminateur NULL), ici tu l'as d'entree par init du segment data mais ne se produira pas ensuite.

Comme tu as 'raison' par decision unilaterale, j'eviterai donc de t'ennuyer avec code et/oui explications a l'avenir.
Vv20oX Messages postés 8 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 8 mars 2004
26 janv. 2004 à 18:49
Bonjour a tous!
il y a du code en trop ,c'est corrigé:
Juste pour afficher les lettres de l'aphabet:


xor ebx,ebx
mov al,64
initialisation:
inc al
mov byte ptr[table+ebx],al
inc ebx
cmp ebx,26
jnz initialisation

Conclusion:
Mon code marche trés bien,puisque je l'ai testé et en plus
je le pense trés fort.On ne peut me contredire sur une fonction qui
marche! ;)
mov byte ptr[edx], 0 <--- cette fonction n'est pas obligatoire
c'est juste pour ajouté une ligne en plus,comme une guirlande
en plus que l'on accroche a un sapin de noel.
Ou comme un enfant que l'on oublie d'enseigner la politesse..
La taille de la variable table est fait pour recevoir 26 "octet",ma
"Fonction" lui en donne aussi 26...Donc...
__Je n'ai pas tort et je n'ai pas raison__

Bon Coding.a+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2004 à 15:10
mov edx, offset table
mov al, 65
Lloop:
mov byte ptr[edx], al ; instruction + courte en taille
inc al
inc edx
cmp al, 90
jbe short Lloop
mov byte ptr[edx], 0 ; OBLIGATOIRE !!!