Mail Archives: djgpp/1996/05/30/04:48:48
Xref: | news2.mv.net comp.os.msdos.djgpp:4366
|
From: | Shawn Hargreaves <slh100 AT york DOT ac DOT uk>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Re: How are args passed in DJGPP?
|
Date: | Tue, 28 May 1996 20:56:33 +0100
|
Organization: | The University of York, UK
|
Lines: | 24
|
Message-ID: | <Pine.SGI.3.91.960528205219.4525B-100000@sgi6.york.ac.uk>
|
NNTP-Posting-Host: | sgi6.york.ac.uk
|
Mime-Version: | 1.0
|
In-Reply-To: | <philpri.22.833228994@ee2.ee.cit.ac.nz>
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
On Mon, 27 May 1996, Richard Philp wrote:
> Just a simple question. I've got some assembler that I've assembled and
> then use o2c to convert it to COFF. The thing is I can't get the assembler
> to pass the correct value back to the program.
Arguments from C to the assembler function are passed on the stack, the
caller pushes them and then cleans up the stack after the asm function
returns. The return value is normally in %eax, at least for integers. I
would imagine pointers are the same, but floats and structures probably
different.
The easiest way to figure this out is to write a simple C function that
takes some parameters and returns something, and compile it with -S. Take
a look at the resulting .s file, and you can see exactly where gcc put
everything...
/*
* Shawn Hargreaves. Why is 'phonetic' spelt with a ph?
* Check out Allegro and FED on http://www.york.ac.uk/~slh100/
*/
- Raw text -