What are the big differences between programming ASM with Windows and Linux ?

Are there more restrictions with Linux ?

I know that you can not use Win32 API but is there an equivalence with Linux ?


Posted on 2003-03-05 05:26:40 by DarkEmpire

You have to wait the penguin's reply. :)
Posted on 2003-03-05 08:25:03 by Vortex
(/me not penguin, /me 75% human, 15% penguin, 10% ;))

Well in Linux you can use interrups (int 80h for calling some (kernel) functions)

One big difference is the executable format, an other is the way of dealing with graphics (a little bit easyer in windows). I find dealing with sockets easier in Linux than in Windows. In Linux you basically have all the tools needed (well, FASM isn't yet included, but IIRC there is some GAS assembvler (IMO, a very very strange assembly variant, looks like .net and tastes like bad chicken ;))) for any kind of development.

API, well I'd say (with risk of bazik calling me WindowsUser) that the int 80h is the linux reply to Windows API (or perhaphs windows API is M$ response to linux inht 80h :rolleyes: ).
Posted on 2003-03-05 08:59:43 by scientica
isnt that socket stuff all the same on each system?
I mean API functions, like accept, bind, connect, etc.
Posted on 2003-03-05 10:03:10 by beaster
Well, in Windows you use WSAStartUp, WSACleanUp, etc, in linux you don't need those calls.
send and the others are the same (I think).
Posted on 2003-03-05 10:15:27 by scientica
While it's not very likely to happen, the syscall interface might change... so you'd better stick to libc instead of int80. Linux doesn't really have an API... it has native int80, or POSIX/libc. With windows, there's the (rather) welldefined WIN32 api (which has a couple subsets - win9x doesn't support all of it), the NT native api, and the NT syscalls (and the ugly 9x hackery with ARPL).
Posted on 2003-03-05 12:04:58 by f0dder