Daten Wirrwahr ...

17/10/2009 - 21:53 von Jens Kallup | Report spam
Hallo,

irgendwie bekomme ich es nicht gebacken:

Quellcode-
var1 = 2+3
? replicate(chr(54),5) + "<"
Ende-

-nasm-output-
...
fstp qword [_var1]
fld qword [LC7]
fistp qword [esp]
push dword LC6
call _replicate_string_int
push dword eax
call _cat_string
add esp, 12
push dword LCS9
call _cat_string
add esp, 4
call _print_string
call _null_string

...

segment .data

_var1: dq 0.0
LC6: dq 54.0
LC7: dq 5.0
LCS9: db "<",0
Ende

LibCode-Source-

char* replicate_string_int(double i, int count)
{
char *buffer = (char*)malloc(232);
sprintf(buffer,"%d, %d | %f, %f",i,count,i,count);
// strcat(buffer,replicate_string(buffer,count));
printf("->>%s",buffer);
return (char*)"dd"; ///replicate_string(buffer,count);
}

char* replicate_string(char* input, int count)
{
char *buffer = (char*)malloc((strlen(input) * count) + 1);
int j;

strcpy(buffer,input); for(j = 1; j < count; j++)
strcat(buffer,input);

return buffer;
}
...
Ende-


Console-Ausgabe-
c:>test.exe
->>4202538, 5 | 0.000000, 0.000000
dd<

Ende-


Hilfe! Woher kommt die 4202538 im CRTWin?
Irgendwo im Code steckt der Wurm ...
Da müsste aber meines Erachtens "54" stehen!

Für sachdienliche Hinweise bin ich Euch
sehr Dankbar.

MfG
Jens
 

Lesen sie die antworten

#1 Dirk Wolfgang Glomp
19/10/2009 - 10:03 | Warnen spam
Hallo Jens.

Am Sat, 17 Oct 2009 21:53:39 +0200 schrieb Jens Kallup:

Hallo,

irgendwie bekomme ich es nicht gebacken:

Quellcode-
var1 = 2+3
? replicate(chr(54),5) + "<"
Ende-

-nasm-output-
...
fstp qword [_var1]



Wieso wird hier etwas geschrieben, sollte hier nicht
eher etwas geladen werden?

fld qword [LC7]
fistp qword [esp]
push dword LC6
call _replicate_string_int
push dword eax
call _cat_string
add esp, 12
push dword LCS9
call _cat_string
add esp, 4
call _print_string
call _null_string

...

segment .data

_var1: dq 0.0
LC6: dq 54.0
LC7: dq 5.0
LCS9: db "<",0
Ende

LibCode-Source-

char* replicate_string_int(double i, int count)
{
char *buffer = (char*)malloc(232);
sprintf(buffer,"%d, %d | %f, %f",i,count,i,count);
// strcat(buffer,replicate_string(buffer,count));
printf("->>%s",buffer);
return (char*)"dd"; ///replicate_string(buffer,count);
}

char* replicate_string(char* input, int count)
{
char *buffer = (char*)malloc((strlen(input) * count) + 1);
int j;

strcpy(buffer,input); for(j = 1; j < count; j++)
strcat(buffer,input);

return buffer;
}
...
Ende-


Console-Ausgabe-
c:>test.exe
->>4202538, 5 | 0.000000, 0.000000
dd<

Ende-


Hilfe! Woher kommt die 4202538 im CRTWin?
Irgendwo im Code steckt der Wurm ...
Da müsste aber meines Erachtens "54" stehen!

Für sachdienliche Hinweise bin ich Euch
sehr Dankbar.

MfG
Jens

Ähnliche fragen