On Wed, 3 Mar 2004 06:23:28 +0000 Daniela <[EMAIL PROTECTED]> probably wrote:
> In this situation, I can only use a single-byte instruction to push 4 bytes, > everything else costs me too much space. The only one I know of, is PUSHA, > but it pushes too many bytes. Quoting from dev-handbook: > But assembly language programmers like to shave off cycles. The above > example requires a call/ret combination. We can eliminate it by > pushing an extra dword: > > open: > push dword mode > push dword flags > push dword path > mov eax, 5 > push eax ; Or any other dword > int 80h > add esp, byte 16 > > The 5 that we have placed in EAX identifies the kernel function, in > this case open. The last time I wrote `push ebp \n mov ebp, esp' the push took 1 byte :). `push <your_favorite_reg>' will work, as the kernel doesn't really care for the value of the dword. -- DoubleF "I'd love to go out with you, but I have to floss my cat."
pgp00000.pgp
Description: PGP signature