Mail Archives: djgpp/1998/03/23/16:45:40
From: | "John Shonder" <shonderja AT ornl DOT gov>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Using assembly language with DJGPP
|
Date: | Mon, 23 Mar 1998 16:31:28 -0500
|
Organization: | Oak Ridge National Lab, Oak Ridge, TN
|
Lines: | 29
|
Message-ID: | <6f6k7n$80r$1@sws1.ctd.ornl.gov>
|
NNTP-Posting-Host: | s25pc.ed.ornl.gov
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
I wrote a Turbo Pascal program that uses assembly language subroutines to
speed up some numerical computations. I'd like to do the same thing using
DJGPP but have no idea where to begin. I'd appreciate it if someone could
help me out or point me to a source for this information.
Here's how I did it in Turbo Pascal: Say I have a function "func" which
takes two variables as arguments and returns another variable of the same
type. Turbo Pascal pushes pointers to the arguments onto the stack from
left to right, so at the beginning of the assembly code I just popped those
pointers into the appropriate variables and made the calculations. BTW these
are structured variables so they're passed by reference not by value.
I compile the assembly routine into an .obj file, and in the Pascal program
there's a line like this:
function func(x,y,z: MyVarType);
{$L func.obj)
Can I do something similar with DJGPP? What is the stack going to look like
when I enter the assembly routine?
I've seen the "inline" thing in DJGPP but would prefer not to use it as
these assembly routines are very involved.
I appreciate any help you can give me. Thanks.
John Shonder
- Raw text -