begin process at 2012 05 30 01:33:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problème ac du inline asm


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème ac du inline asm

mardi 22 juin 2004 à 12:03:29 | Problème ac du inline asm

oceax


Bonjour,
je suis débutant en c++ et n'y connais pas encore énormément gd chose...
Sur mon dernier programme (un keygen pr crack me que j'ai créé par mes soins) j'obtiens le message d'erreur suivant :
error : too many memory references for 'mov';

voici ma source :

#include <stdio.h>
#include <iostream>
#include <string.h>



int main(int nNumberofArgs, char* pszArgs[])
{
int serial;
int longueur;
char szNom [20];
cout << "Salut je te souhaite la bienvenue dans ce Keygen";
cout <<"Ton nom stp :";
cin.getline (szNom, 20);
longueur = strlen (szNom);
asm
(
"start :"
"mov edi, byte [szNom]"
"xor edi,30"
"push edi"
"xor edi,20"
"mov serial,edi"
)
;
cout << serial;
return 0;
}

Voila si qqn peut m'aider je lui serait très reconnaissant
a bientot
Ben
mardi 22 juin 2004 à 13:35:56 | Re : Problème ac du inline asm

BruNews

Administrateur CodeS-SourceS
mov edi, byte [szNom]
C'est QUOI le but de cette instruction ???
Tu veux prendre 1er octet de szNom ou 4 ?

ciao...
BruNews, Admin CS, MVP Visual C++
mardi 22 juin 2004 à 20:08:56 | Re : Problème ac du inline asm

oceax


En fait j'aimerais prendre la première lettre de la chaine et y effectuer les opérations dessus
Désolé pour mon inculture mais je débute
merci a+
mardi 22 juin 2004 à 20:23:47 | Re : Problème ac du inline asm

BruNews

Administrateur CodeS-SourceS
movzx eax, byte ptr [szNom]

Emploie registres generaux (EAX, ECX et EDX) tant que faire se peut et EAX en priorite car c'est le plus rapide d'acces, les autres sont a sauvegarder en entree et a restaurer en sortie.

Que fait ce 'push edi' au milieu, je ne vois ni 'pop' ni aucun appel de fonction qui remontera ESP. Passera dans ton exemple car tu sors du prog juste derriere mais sur un prog important ce sera badaboum a tout coup.

Ne mettre de l'ASM que s'il y a un benef (perf ou taille code) mais pas quand tu obtiens exactement la meme chose avec du C, ce qui peut se faire dans ton exemple.

ciao...
BruNews, Admin CS, MVP Visual C++


Cette discussion est classée dans : int, mov, asm, edi, sznom


Répondre à ce message

Sujets en rapport avec ce message

Asm ou SM [ par Joky ] Et oui on voit pas trop la différence entre ces 2 choses lol :) Donc je suis entrain de lire un Tuto sur l'asm avec des ptits exemples n'ayant pas de PB avec de l'ASM dans VC++ 6 .... [ par Foub12 ] Bonjour...Je programme sous VC++ 6 et j'ai trouvé sur Internet, la fonction suivante mais elle ne marche pas... Il compile parfaitement mais lors de l lecture d'une chaine au clavier :probléme d'execution! [ par infofst ] Bonjour, je suis en train d'écrire un programme qui fait des opérations sur une date saisie au clavier. la lecture de date est en language assembleu ASM inline et mingw (GCC) [ par skirby ] Bonjour tout le monde,J'aimerais mettre de l'assembleur inline dans mon code en C.J'utilise Code::Block et mingw.Voici un extrait de code qui ne veut Code ASM dans projet CPP [ par FearBlue ] Slt a tous !!!$Je dev une appli en Cpp et je desire inclure de L'asm dedansJe compile avec gccVoici ce que je fais et ca fait grosse erreur :(:(:(:(   ASM + C++, Aidez-moi SVP :D [ par belette321 ] Bonjour, voilla j'esseil de faire un anti-hack mais j'optien une erreur lors de se code... : [code=cpp]__asm{ mov eax, WriteProcessMemory; IAT mov pk ca fonctionne pas [ par laulau10 ] int i=1;do printf("coucou");whil(i=1);DLL int RotationX(void){ int SortieBX=0; _asm{ MOV AX,3; INT 0x33; MOV SortieBX,BX; ret; } ret ASM et C++ [ par rastafari ] Pourquoi est-ce que ce programme génère une erreur à l'éxécution?int f(){ __asm</font color="#0000F Macro : renvoyer une chaîne avec une virgule [ par rt15 ] Salut,Je cherche désespérément à faire une macro qui renverrait une chaîne comprenant deux éléments séparés par une virgule.printf(TO_STRING(a, b));-> pointeur ram [ par mana ] bonjour j'aimerai pouvoir lire une adresse en ram voici mon probleme : int filtre(int &adresse){ int *p; p=&adresse+0; int imgl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales