Strange Linking Problem

From: Matthias-Christian Ott
Date: Sat Mar 12 2005 - 09:03:12 EST


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?

Matthias-Christian Ott
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/