On Wed, Apr 12, 2006 at 09:22:49AM +0200, Alessandro Coppelli wrote: > Hi to all. > I am interested to developing a little > assembly language programs. > > I rode the article written by Thomas Sommers > ( http://user.nj.net/~tms/hello.html ) > I followed author's instructions but at the end of compilation > > as -o <name>.o <name>.s > ld -o <name> <name>.o > > what I have is > > #./<name> > #ksh: Operation not permitted > > > Someone knows what is happenig ? > > Ale > >
Yes, your file is not recognized as valid OpenBSD ELF executable. Try this: -- 8< -- (hello.s) section .text global _start msg db "Hello, world!",0xa len equ $ - msg _syscall: int 0x80 ret _start: push dword len push dword msg push dword 1 ; stdout mov eax,0x4 ; write call _syscall add esp,12 push dword 0 mov eax,0x1 call _syscall Valid OpenBSD elf header :) -- 8< -- (obsd-elf.s) .section ".note.openbsd.ident", "a" .p2align 2 .long 8 .long 4 .long 1 .ascii "OpenBSD\0" .long 0 .p2align 2 Compile and link it... $ as obsd-elf.s -o obsd-elf.o $ nasm -f elf -o hello.o hello.s $ ld -s -o hello hello.o obsd-elf.o $ ./hello Hello, world! Tobias