Author Topic: Preserved registers, and call/jmp replacement  (Read 8291 times)

Philippe RIO

  • Guest
Preserved registers, and call/jmp replacement
« on: May 04, 2008, 10:07:40 AM »
When I make call to a linux/Gtk/... function, are the EBX, EDI and ESI registers saved ?

Very often I use the following code :

PUSH ARG_1
PUSH .Exit
JMP  GTK_SomeFunc

in replacement of

PUSH ARG_1
CALL GTK_SomeFunc
JMP .Exit

or

INVOKE GTK_SomeFunc,ARG_1
JMP .exit

Is it right on Linux ? Because a call before a jmp always must be removed !

Thanks

nobody

  • Guest
Re: Preserved registers, and call/jmp replacement
« Reply #1 on: May 05, 2008, 07:33:35 AM »
> ?

Wrong forum.

> Because a call before a jmp always must be removed !

Why ? ;-)

> Is it right on Linux ?

Fine in DOS. Sorry I don't have Linux.

nobody

  • Guest
Re: Preserved registers, and call/jmp replacement
« Reply #2 on: May 05, 2008, 07:34:30 AM »
Except the return address is peeked and used for something of course.