printf (' hello world! ');

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Kevin Buettner
Date:  
Subject: printf (' hello world! ');
On Jun 30, 4:09pm, Shawn T. Rutledge wrote:

> > What is the Linux equivalent of assembly ?
>
> You can do assembly in Linux, the assembler is as86. There is also
> nasm I believe.


Don't forget gas. (The GNU ASsembler used by gcc.)

> But I haven't done it. I suspect you could still
> make function calls to libc functions for doing output, etc. I
> don't think it gets much use outside the kernel itself.


I think you're talking about inline assembler. It comes in handy from
time to time for directly accessing the CPU's registers and for
executing instructions (e.g, cache flushing / synchronization
instructions) which the compiler will never emit. Of course, it's
best avoided if possible since it is extremely non-portable.

But when you really need it, inline assembler is invaluable because
the only other choice is to write the whole function in assembler.
For a good example of a wise use of inline assembler, take a look at
the dmalloc package. (At http://dmalloc.com/ ... dmalloc is a malloc
debugging library.) dmalloc uses inline assembler for getting at the
return address in the various replacement functions (malloc, free,
realloc, etc).