Variablen in C Programm ändern

04/10/2009 - 17:37 von Jens Kallup | Report spam
Hallo,

wie kann ich eine Variable, die per
"push" als parameter zu einer C-Funktion
übergeben wurde, àndern?

also in etwa so:

push dword var1
call _change_wert
add esp, 4

var1: db "01.01.2001",0


im C-Programm/Funktion soll nun "var1"
"04.10.2009" annehmen.

Wie macht man das?
Danke
Jens
 

Lesen sie die antworten

#1 Markus Wichmann
04/10/2009 - 22:00 | Warnen spam
Jens Kallup () schrieb:

Hallo,

wie kann ich eine Variable, die per
"push" als parameter zu einer C-Funktion
übergeben wurde, àndern?

also in etwa so:

push dword var1
call _change_wert
add esp, 4

var1: db "01.01.2001",0


im C-Programm/Funktion soll nun "var1"
"04.10.2009" annehmen.

Wie macht man das?
Danke
Jens



Durch Übergabe eines Pointers, was du ja schon tust. Anschließend kannst
du in C folgendes schreiben:

void change_wert(char* var)
{
char goal[] = "04.10.2009";
char* p = goal;
while (*p)
*var++ = *p++;
}

oder in Assembler:

section .rodata
LC1: "04.09.2009", 0
.len: equ $-LC1

section .text
_change_wert
push ebp
mov ebp, esp
push esi
push edi
mov ecx, LC1.len
mov esi, [LC1]
mov edi, [ebp+8]
rep movsb
pop edi
pop esi
pop ebp
ret

HTH,
Markus
Nur weil ein Genie nix reißt, muß ja nun nicht gleich jeder Idiot
pausieren... Bully hats ja auch geschafft.

Ähnliche fragen