Accueil > Forum > > > > Copier chaine
Copier chaine
jeudi 26 août 2004 à 16:22:19 |
Copier chaine

DeAtHCrAsH
|
Lu, Je débute en ASM et je cherche des exemples et des cours un peu partout. Pour l'instant j'essaye d'apprendre a maitriser l'uitlité des registres mais aussi les variable. En C, les types de variables sont tels que char [], char *, int, double, float. Quel sont les équivalents en ASM ? Aussi, est ce que quelqu'un pourrait me faire un exemple de fonction qui prend en parametre 2 chaines et qui copie la 1ere dans la deuxieme. Merci par avance. Toute aide sera la bienvenue. Shell
|
|
jeudi 26 août 2004 à 17:44:27 |
Re : Copier chaine

AlexMAN
|
Coucou,
char coucou[12]; >> coucou db 12 dup(0); char *coucou; >> coucou dd 0; pointeurs 4 octets donc un double mot int coucou; >> coucou dd 0; int 4 octets donc un double mot double coucou; >> coucou dq 0.0;double 8 octets donc un qword.
APres pour la fonction, j'etais en train de ten faire une, mais pas sur du tt kel fonctionne, donc je prefere te dire que Brunews en a codé une, tu peux la trouver sur cppfrance, c'est bnstrcpy.
Voila, en esperant avoir pu t'aider..
++
|
|
jeudi 26 août 2004 à 23:01:25 |
Re : Copier chaine

DeAtHCrAsH
|
Yep j'ai regardé ce que tu m'as dis. j'ai essayé un truc du genre mais ca marche pas, j'ai une erreur a la compilation : [/Code]... .data Msg db 50 dup (0) Txt db 50 dup (0)
.code start:
mov Msg[0], Txt[0] ...[/Code]
Et j'ai l'erreur suivante :
"D:\ASM\PrintString\Main.asm(17) : error A2070: invalid instruction operands
Comment faire pour copier le 1er élément d'un tableau dans un autre tableau de meme type et de meme taille ?
Shell
|
|
jeudi 26 août 2004 à 23:09:25 |
Re : Copier chaine

AlexMAN
|
Il faut passer par un registre intermediaire :
mov dl, [ecx] mov [eax], dl
ca devrait passer, mais t'as regardé la source de Brubru ?
|
|
jeudi 26 août 2004 à 23:40:33 |
Re : Copier chaine

DeAtHCrAsH
|
Oui je l'ai regardé mais j'y ai rien compris ou du moins pas grand chose. En fait pour fixer les connaissances de base sur les registres, dans quel cas utilise t'on EAX, EBX, ECX, EDX, ESI, et EDI? Et surtout comment les utilise t'on ?
Pourquoi préféré EAX a EBX ou autre ?
J'ai plein de ptite question comme ca qui me trote dans la tete.
Shell
|
|
jeudi 26 août 2004 à 23:52:11 |
Re : Copier chaine

AlexMAN
|
jV repondre en parti paske mes connaissances sont bien maigres en asm...
Je pense qu'utiliser eax, ecx, et edx est du au fait qu'on a pas besoin de les restaurer apres utilisation, contrairement a EDI, ESI et EBX oci ! Enfin, jmexprime ptet mal, atta ke Brubru passe par la, il t'explikera bocou mieux ke je le ferai. Par contre, si tu as des pb avec sa fonction, demande moi, j'ai passé du temps a la comprendre moi oci, et ji suis arrivé dc n'hésite pas...
++
|
|
vendredi 27 août 2004 à 00:04:55 |
Re : Copier chaine

DeAtHCrAsH
|
Yep je vais attendre BruNews pour quelques explications sur l'utilisation des registres.
Par contre je viens de lire et relire la fonction de BruNews et je pense avoir compris pas mal de chose, sauf peut etre une!
Pourquoi réitère t'il 3 fois les changements de registres en les comparants ? Une seule fois n'aurait elle pas suffit en bouclant dessus jusqu'a arriver a la fin de la chaine ?
Et quand il utilise dec, il decremente le pointeur, mais dans ce cas comemnt fait il pour aller au bout de la chaine en decrementant ?
Shell
|
|
vendredi 27 août 2004 à 00:17:44 |
Re : Copier chaine

AlexMAN
|
Uè moi oci ca ma semblé bizar, mais en fait, c paskil a deroulé la boucle, au lieu de faire 3sauts, il nen fera k1, c une technik d'optimisation made in brubru. Et pour ce ki est de l'utilisation de dec, je crois (si jme souviens bien) kil ne fait ca kune seule fois, au debut, c pour ka la fin, il renvoie une valeur pointant sur le zero final de la chaine. Voila, en esperant t'avoir aidé
++
|
|
vendredi 27 août 2004 à 00:28:17 |
Re : Copier chaine

DeAtHCrAsH
|
Oki, C'est deja beaucoup plus clair. J'essaye donc de copier le premier caractere d'un db dans un dd, je compile je n'ai aucune erreur mais le prog plante! Ou est l'erreur ??? .data txt dd 12 dup (0) msg db "Salut!",0 .code start: mov eax, txt mov ecx, offset msg mov dl, [ecx] mov [eax], dl add eax,0
invoke MessageBox, NULL, addr txt, addr msg, MB_OK invoke ExitProcess,0 end start |
Shell
|
|
vendredi 27 août 2004 à 00:31:59 |
Re : Copier chaine

AlexMAN
|
mov eax, offset txt
ca passe nan ?
Et pkoi ce add eax, 0 ??? ne sert a rien, et puis si jpeu te donner un conseil, ki n'est kune kestion de gout, enleve ces invoke, ki ne font ke denaturer le vrai assembleur ... Mais fais comme tu veux !
++
|
|
Cette discussion est classée dans : chaine, char, aussi, asm, copier
Répondre à ce message
Sujets en rapport avec ce message
Equivalent ASM de chaine[0] = 0 [ par AlexMAN ]
Bonjour, C'est simplement une ptite incertitude : pour l'ekivalent de chaine[0] = 0 en C: mov [chaine], 0 ou mov chaine, 0Ou bien c totatelment la mm
strrev [ par vecchio56 ]
Je regarde le fichier strrev.asm qui est utilisé au moins pour les debogages et je remarque que c'est une traduction d'un algorithme écrit en C qui es
Fonction standard et asm inline [ par AlexMAN ]
Bonsoir, Voila, j'ai essayé a plusieurs reprises d'appeler une fonction une fonction standard tel que strcpy, strcmp, memset (n'est pas standard mais
[NASM] émulateur NES [ par sirozz ]
Bonjour à tous,Je me lance dans la programmation d'un émulateur de console NES en ASM avec NASM. J'avais déja fait un émulateur NES en VB il y a quelq
pb j'conprend pas [ par mat74 ]
voila je viens de faire un prog ( avec tasm ) qui lis les attributs d'1 fichier et qui les affiches . le pb c'est que la valeur renvoyer par l'interru
Question ASM [ par LordBob ]
Bonjours a tous,voila en fait j'aimerais me lancer dans la programmation en assembleur, je viens donc d'acheter un petit bouquin qui traite du sujet e
Cherche doc instructions asm x86... [ par akboy7015 ]
Bonjour a tous...J'ai beau eu cherché sur ce site dans le forum, je ne trouve aucun lien vers une bonne doc assembleur x86 faisant la liste de toutes
Exemples [ par DeAtHCrAsH ]
Lu,Je débute en ASM et pour ce faire je cherche des exercices a faire en ASM, de niveau croissant.Merci par avance.Shell
pic16f84 serin [ par h82kev ]
bjr à tousvoilà mon problèmej'utilise un pic16f84 pour un banc de test pour modemlorsque j'appui sur un bouton poussoir (pin 7), je veux envoyer un ca
PGCD.ASM [ par KENZO75 ]
bonsoir à tous, j'ai un programme à faire, il doit calculé le pgcd de deux nombres entre 0 et 99...Mais je sais pas comment faire lire les deux nombre
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Forum
RE : ASSEMBLEURRE : ASSEMBLEUR par ghuysmans99
Cliquez pour lire la suite par ghuysmans99 RE : ASSEMBLEURRE : ASSEMBLEUR par ghuysmans99
Cliquez pour lire la suite par ghuysmans99 ASSEMBLEURASSEMBLEUR par solleil
Cliquez pour lire la suite par solleil
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|