Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Assembly x86 > Re: Calling lib...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 3 of 22 Topic 4620 of 4729
Post > Topic >>

Re: Calling libraries from assembler.

by Josef Moellers <spamtrap@[EMAIL PROTECTED] > Apr 21, 2008 at 08:50 AM

(Gordon Burditt) wrote:
>> I have tried how simple it is to use
>> system calls in Linux from assembler.
>> Setting parameters in the registers
>> eax/edx and then "int 0x80".
> 
> You are not calling a library.  You are calling the kernel.
> There's a difference.
> 
>> I would like to know it there
>> is a similar, easy way of calling
>> other libraries (specially X windows).
>>
>> It should be as simple as giving
>> the function name in ASCII ! :)
> 
> Look at how the C compiler calls C functions.  Write a simple
> function that does some calls, gcc -S foo.c, and examine foo.s .
> Generally, you push a bunch of arguments on to the stack, use a
> call instruction to call the function, and adjust the stack to
> remove the stuff you pushed on.

Be careful: this applies only to a certain version of a certain compiler 
suite on a certain machine architecture.

E.g. when compiling on an x86_64 architecture, I find that it p***** the 
first 6 arguments in registers rdi, rsi, rdx, rcx(*), r8, and r9 (or 
their 32-bit counterparts). The rest is passed on the stack.
(*) The fourth argument of a system call is passed in r10 instead of rcx!

BTW As a caller, you don't have to be aware of a varargs function, e.g. 
printf: just pass the arguments as you would for a fixed-argument
function.

-- 
These are my personal views and not those of Fujitsu Siemens Computers!
Josef Möllers (Pinguinpfleger bei FSC)
	If failure had no penalty success would not be a prize (T.  Pratchett)
Company Details: http://www.fujitsu-siemens.com/imprint.html
 




 22 Posts in Topic:
Calling libraries from assembler.
SoLo2 <spamtrap@[EMAI  2008-04-18 18:43:51 
Re: Calling libraries from assembler.
(Gordon Burditt) <spam  2008-04-18 23:22:54 
Re: Calling libraries from assembler.
Josef Moellers <spamt  2008-04-21 08:50:12 
Re: Calling libraries from assembler.
Frank Kotler <spamtra  2008-04-19 08:29:23 
Re: Calling libraries from assembler.
SoLo2 <spamtrap@[EMAI  2008-04-19 18:41:12 
Re: Calling libraries from assembler.
Terence <spamtrap@[EM  2008-04-20 15:33:52 
Re: Calling libraries from assembler.
Frank Kotler <spamtra  2008-04-21 00:33:57 
Re: Calling libraries from assembler.
santosh <spamtrap@[EM  2008-04-21 07:31:41 
Re: Calling libraries from assembler.
Robert Redelmeier <red  2008-04-21 02:04:02 
Re: Calling libraries from assembler.
Frank Kotler <spamtra  2008-04-21 05:25:02 
Re: Calling libraries from assembler.
"James Van Buskirk&q  2008-04-21 11:46:30 
Re: Calling libraries from assembler.
"robertwessel2@[EMAI  2008-04-20 19:20:38 
Re: Calling libraries from assembler.
Terence <spamtrap@[EM  2008-04-20 21:12:02 
Re: Calling libraries from assembler.
Frank Kotler <spamtra  2008-04-21 05:49:00 
Re: Calling libraries from assembler.
Robert Redelmeier <red  2008-04-21 14:25:53 
Re: Calling libraries from assembler.
Josef Moellers <spamt  2008-04-22 09:44:41 
Re: Calling libraries from assembler.
Josef Moellers <spamt  2008-04-22 09:42:38 
Re: Calling libraries from assembler.
Terence <spamtrap@[EM  2008-04-22 15:18:31 
Re: Calling libraries from assembler.
David Thompson <spamt  2008-05-05 04:10:33 
Re: Calling libraries from assembler.
"H. Peter Anvin"  2008-05-05 11:06:21 
Re: Calling libraries from assembler.
(Scott Lurndal) <spamt  2008-05-05 23:41:16 
Re: Calling libraries from assembler.
"H. Peter Anvin"  2008-05-12 23:44:56 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Jul 26 2:17:18 CDT 2008.