linux-mips
[Top] [All Lists]

Re: MIPS/Linux assembly issue

To: adnan iqbal <adnan.iqbal@seecs.edu.pk>
Subject: Re: MIPS/Linux assembly issue
From: Arnaud Patard <apatard@mandriva.com>
Date: Fri, 21 May 2010 14:21:47 +0200
Cc: linux-mips@linux-mips.org
In-reply-to: <AANLkTikrUGzUykZJwoK3Jq9mEJa6l35jo5DXHae3vbIG@mail.gmail.com> (adnan iqbal's message of "Fri, 21 May 2010 16:46:36 +0500")
Organization: Mandriva
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <AANLkTikrUGzUykZJwoK3Jq9mEJa6l35jo5DXHae3vbIG@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1 (gnu/linux)
adnan iqbal <adnan.iqbal@seecs.edu.pk> writes:

> Hi all,

Hi,
>
> I am trying to compile/link/execute following very simple program in
> debian/MIPS (Tried on Qemu and Octeon). I am getting errors while executing
> the program. gdb also shows a strange behavior showing program entrypoint
> somehere in data segement. Any help getting this sorted out shall be
> appreciated.
>
> Regards
> Adnan
>
> Commands used to compile/link
> ----------------------------------------------------
> $ as hello.s -o hello.o
> $ld hello.o -o hello
> $ ./hello
>
>
> The code
> ---------------
>       .data
> str:
>         .asciiz "hello world\n"
>         .text
>         .globl __start

Please consider adding ".ent __start" here

>
> __start:
>         jal f2
>         la $4,str
>         li $2,4

It's wrong here. On o32, write syscall is 4004. Also the args are:
$4: file descriptor (here 0)
$5: string
$6: string length

>         syscall
>
>         ## terminate program via _exit () system call
>         li $2, 10

exit is 4001. 4010 is unlink. Look at /usr/include/asm/unistd.h on your
mips system.

>         syscall

Add .end __start here if you've added the .ent


Arnaud

<Prev in Thread] Current Thread [Next in Thread>