This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Assembler


Williams, Gerald S (Jerry) wrote:

>> What about Linux syscalls? Will Cygwin emulation layer match
>> it?

> I just Googled "int 0x80". So THAT'S what you're
> trying to do. :-)

:-)

> No, I think your experiment shows that Cygwin is
> not emulating Linux syscalls at that level.

Really?

> Nor would I have expected it to.

Why not? c code, translated to asm with -c -S on linux box, can be later
compiled and linked with Cygwin's gcc and works fine. As you see, I have a
good reason to believe that nasm's int 0x80 will work too. So maybe I should
simply look for a nasm -> gcc's assembler translator?

> On the other hand, you can get at DOS functions,
> at least if you build your executable correctly.
> For example, the following:
>
> ; hello.asm
> [ORG 0x100]
>
> section .text
> global  _start
>
> _start: mov     ah,9
>         mov     dx, hello
>         int     0x21
>
>         mov     ax,0x4c00
>         int     0x21
>
> section .data
> hello   db      'Hello, World', 13, 10, '$'

That was an easy example. But what if I want to fork? :-)

>> Is there a way I could force Cygwin's ld to work the way
>> Linux ld used to?
>
> I don't know about that, but you can specify the
> entry point explicitly:
>
> ld -e _start hello.o

Thanks! Now my hello.asm compiles well, is linked correctly, but still gives
an empty output.

Regards
Krzysztof Duleba



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]