This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: Assembly language exit() syscall does not return correct value
- From: Stephan Mueller <Stephan dot Mueller at microsoft dot com>
- To: Brandon Chase <tapedispenser7 at hotmail dot com>, "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Tue, 16 Mar 2010 17:08:39 +0000
- Subject: RE: Assembly language exit() syscall does not return correct value
- Deferred-delivery: Tue, 16 Mar 2010 17:09:00 +0000
- References: <SNT124-W2474B6AD4E766F69DD69EE992D0@phx.gbl>
Brandon Chase wrote:
" DaveK wrote:
" " On 15/03/2010 16:56, Christopher Faylor wrote:
" " > # %ebx is the status code for the exit system call
" " > # and it already has the maximum number
" " > movl $1, %eax #1 is the exit() syscall
" " >
" " > If, in theory, I got this right then, on linux it SEGVs. I would
" " > not expect anything different on Cygwin. It seems like you need
" " > to actually call exit() if you want this to exit.
"
" " Yeah, this looks like it was Linux assembly code and the "int 0x80" has just
" " been removed. What you said. Also, it should probably define '_main' rather
" " than '_start'. And use the gcc driver to assemble and link it so as to get
" " the necessary startup code.
"
" " Brandon, Cygwin isn't compatible with Linux at the assembler-code level, in
" " particular Cygwin isn't a real kernel, so it doesn't have a syscall interface;
" " you just call system functions as if they were ordinary functions.
"
" So I cannot compile assembly language with Cygwin? Do I need a linux shell?
No, that's not what anyone said. You can use the assembler on Cygwin to generate
binaries that run on Cygwin (which is I think what you're looking for), but your
assembly source code won't work as is -- you will need to make changes of the
sort that DaveK and cgf state in the paragraphs above.
stephan();
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple