Tuesday, May 24, 2011

re: NASM + Alchemy

Im currently stuck with the below situation.

[[[ hello.asm ]]]
section     .text
 global _start                       ;must be declared for linker (ld)
     int     0x80            ;system call
_start:                         ;tell linker entry point
     push    dword len       ;message length
     push    dword msg       ;message to write
     push    dword 1         ;file descriptor (stdout)
     mov     eax,0x4         ;system call number (sys_write)
     call    _syscall        ;call kernel
                             ;the alternate way to call kernel:
                             ;push   eax
                             ;call   7:0
     add     esp,12          ;clean stack (3 arguments * 4)
     push    dword 0         ;exit code
     mov     eax,0x1         ;system call number (sys_exit)
     call    _syscall        ;call kernel
                             ;we do not return from sys_exit,
                             ;there's no need to clean stack
section .data
msg     db      "Hello, world!",0xa     ;our dear string
len     equ     $ - msg                 ;length of our dear string

> alc-on
>  nasm -f macho hello.asm
> ld -e _start -o hello hello.o
> ./hello
Hello, world!
> which ar
> ar rc hello.a hello.o
llvm-nm: hello.o: unrecognizable file type
llvm-ld: warning: Ignoring file 'hello.o' because does not contain bitcode.

Let me know if there's a fix for it.

May 26th, 2011
Looks like you cannot do so.
Read: http://forums.adobe.com/thread/856497?tstart=0

No comments:

Post a Comment