From: Matthias-Christian Ott <matthias.christian@tiscali.de>
To: linux-os@analogic.com
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Strange Linking Problem
Date: Sun, 13 Mar 2005 10:33:30 +0100 [thread overview]
Message-ID: <423408EA.3040106@tiscali.de> (raw)
In-Reply-To: <Pine.LNX.4.61.0503120929200.7904@chaos.analogic.com>
linux-os wrote:
> On Sat, 12 Mar 2005, Matthias-Christian Ott wrote:
>
>> Hi!
>> I hope I'm right here. I've the following assembler code:
>>
>> SECTION .DATA
>> hello: db 'Hello world!',10
>> helloLen: equ $-hello
>>
>> SECTION .TEXT
>> GLOBAL main
>>
>> main:
>>
>>
>>
>> ; Write 'Hello world!' to the screen
>> mov eax,4 ; 'write' system call
>> mov ebx,1 ; file descriptor 1 = screen
>> mov ecx,hello ; string to write
>> mov edx,helloLen ; length of string to write
>> int 80h ; call the kernel
>>
>> ; Terminate program
>> mov eax,1 ; 'exit' system call
>> mov ebx,0 ; exit with error code 0
>> int 80h ; call the kernel
>>
>>
>> Then I run:
>>
>> nasm -f elf hello.asm
>>
>>
>> I link it with ld and run it:
>>
>> ld -s -o hello hello.o
>> ./hello
>> segmentation fault
>>
>>
>> I link it with the gcc and run it:
>>
>> gcc hello.o -o hello
>> ./hello
>> Hello world!
>>
>>
>> What's wrong with the ld?
>>
>
> Nothing at all. Where is _start: ?
>
> Remove the 'main' label and substitute _start:
>
> It is 'C' convention that programs start with main(). They
> really don't. With the Linux API, they start at _start: and
> do some housekeeping before calling main. That's what the
> crt.o file that the 'C' tool-chain uses, does.
>
>
> Cheers,
> Dick Johnson
> Penguin : Linux version 2.6.11 on an i686 machine (5537.79 BogoMips).
> Notice : All mail here is now cached for review by Dictator Bush.
> 98.36% of all statistics are fiction.
>
Ofcourse you have to edit it, but this is not the problem (the linker
will give an error message if you don't change it). Why does it cause a
segementation fault?
Matthias-Christian Ott
prev parent reply other threads:[~2005-03-13 9:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-12 14:01 Strange Linking Problem Matthias-Christian Ott
2005-03-12 14:34 ` linux-os
2005-03-13 9:33 ` Matthias-Christian Ott [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=423408EA.3040106@tiscali.de \
--to=matthias.christian@tiscali.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-os@analogic.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.