delorie.com/archives/browse.cgi   search  
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019