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
|